@pikku/core 0.12.14 → 0.12.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/dist/errors/errors.d.ts +4 -0
- package/dist/errors/errors.js +12 -0
- package/dist/function/function-runner.js +2 -1
- package/dist/function/functions.types.js +1 -0
- package/dist/function/index.d.ts +2 -1
- package/dist/function/index.js +1 -0
- package/dist/handle-error.d.ts +2 -2
- package/dist/handle-error.js +8 -8
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1 -2
- package/dist/middleware/index.d.ts +3 -0
- package/dist/middleware/index.js +3 -0
- package/dist/middleware/remote-auth.js +5 -2
- package/dist/middleware/telemetry.d.ts +47 -0
- package/dist/middleware/telemetry.js +106 -0
- package/dist/middleware-runner.js +31 -4
- package/dist/permissions.d.ts +13 -1
- package/dist/permissions.js +51 -0
- package/dist/pikku-state.d.ts +0 -1
- package/dist/pikku-state.js +1 -4
- package/dist/remote.d.ts +10 -0
- package/dist/remote.js +32 -0
- package/dist/schema.js +2 -0
- package/dist/services/deployment-service.d.ts +12 -1
- package/dist/services/in-memory-queue-service.d.ts +7 -0
- package/dist/services/in-memory-queue-service.js +28 -0
- package/dist/services/index.d.ts +4 -1
- package/dist/services/index.js +2 -1
- package/dist/services/logger-console.d.ts +26 -40
- package/dist/services/logger-console.js +102 -46
- package/dist/services/logger.d.ts +5 -0
- package/dist/services/meta-service.d.ts +175 -0
- package/dist/services/meta-service.js +310 -0
- package/dist/services/workflow-service.d.ts +6 -1
- package/dist/testing/service-tests.js +0 -8
- package/dist/types/core.types.d.ts +21 -0
- package/dist/types/core.types.js +7 -1
- package/dist/types/state.types.d.ts +2 -2
- package/dist/wirings/ai-agent/ai-agent-prepare.js +42 -21
- package/dist/wirings/ai-agent/ai-agent-registry.js +2 -2
- package/dist/wirings/ai-agent/ai-agent-runner.js +18 -1
- package/dist/wirings/ai-agent/ai-agent-stream.js +1 -0
- package/dist/wirings/ai-agent/ai-agent.types.d.ts +5 -3
- package/dist/wirings/channel/channel-runner.js +3 -3
- package/dist/wirings/cli/cli-runner.js +5 -3
- package/dist/wirings/cli/command-parser.js +7 -3
- package/dist/wirings/http/http-runner.d.ts +1 -1
- package/dist/wirings/http/http-runner.js +23 -11
- package/dist/wirings/http/http.types.d.ts +3 -0
- package/dist/wirings/http/pikku-fetch-http-response.d.ts +1 -0
- package/dist/wirings/http/pikku-fetch-http-response.js +3 -0
- package/dist/wirings/mcp/mcp-runner.js +5 -3
- package/dist/wirings/mcp/mcp.types.d.ts +1 -1
- package/dist/wirings/queue/queue-runner.d.ts +3 -1
- package/dist/wirings/queue/queue-runner.js +7 -3
- package/dist/wirings/rpc/rpc-runner.js +56 -90
- package/dist/wirings/scheduler/scheduler-runner.d.ts +3 -1
- package/dist/wirings/scheduler/scheduler-runner.js +9 -5
- package/dist/wirings/trigger/trigger-runner.js +4 -2
- package/dist/wirings/workflow/dsl/workflow-runner.d.ts +1 -1
- package/dist/wirings/workflow/dsl/workflow-runner.js +6 -9
- package/dist/wirings/workflow/graph/graph-runner.d.ts +1 -1
- package/dist/wirings/workflow/graph/graph-runner.js +18 -4
- package/dist/wirings/workflow/index.d.ts +4 -2
- package/dist/wirings/workflow/index.js +4 -2
- package/dist/wirings/workflow/pikku-workflow-service.d.ts +16 -4
- package/dist/wirings/workflow/pikku-workflow-service.js +216 -24
- package/dist/wirings/workflow/workflow-queue-workers.d.ts +40 -0
- package/dist/wirings/workflow/workflow-queue-workers.js +41 -0
- package/dist/wirings/workflow/workflow.types.d.ts +17 -1
- package/package.json +4 -1
- package/src/errors/errors.ts +12 -0
- package/src/function/function-runner.ts +5 -4
- package/src/function/functions.types.ts +1 -0
- package/src/function/index.ts +10 -0
- package/src/handle-error.test.ts +2 -2
- package/src/handle-error.ts +8 -8
- package/src/index.ts +2 -2
- package/src/middleware/index.ts +3 -0
- package/src/middleware/remote-auth.test.ts +4 -4
- package/src/middleware/remote-auth.ts +7 -2
- package/src/middleware/telemetry.ts +110 -0
- package/src/middleware-runner.test.ts +149 -1
- package/src/middleware-runner.ts +48 -4
- package/src/permissions.ts +70 -0
- package/src/pikku-state.test.ts +0 -26
- package/src/pikku-state.ts +1 -5
- package/src/remote.ts +46 -0
- package/src/schema.ts +1 -0
- package/src/services/deployment-service.ts +17 -1
- package/src/services/in-memory-queue-service.ts +46 -0
- package/src/services/index.ts +21 -1
- package/src/services/logger-console.ts +127 -47
- package/src/services/logger.ts +6 -0
- package/src/services/meta-service.ts +523 -0
- package/src/services/workflow-service.ts +8 -0
- package/src/testing/service-tests.ts +0 -10
- package/src/types/core.types.ts +36 -1
- package/src/types/state.types.ts +2 -2
- package/src/wirings/ai-agent/ai-agent-prepare.ts +51 -40
- package/src/wirings/ai-agent/ai-agent-registry.ts +3 -3
- package/src/wirings/ai-agent/ai-agent-runner.ts +16 -1
- package/src/wirings/ai-agent/ai-agent-stream.ts +8 -0
- package/src/wirings/ai-agent/ai-agent.types.ts +5 -3
- package/src/wirings/channel/channel-runner.ts +4 -5
- package/src/wirings/channel/local/local-channel-runner.test.ts +5 -1
- package/src/wirings/cli/cli-runner.test.ts +8 -7
- package/src/wirings/cli/cli-runner.ts +6 -4
- package/src/wirings/cli/command-parser.ts +8 -3
- package/src/wirings/http/http-runner.ts +27 -11
- package/src/wirings/http/http.types.ts +3 -0
- package/src/wirings/http/pikku-fetch-http-response.ts +4 -0
- package/src/wirings/mcp/mcp-runner.ts +7 -9
- package/src/wirings/mcp/mcp.types.ts +1 -1
- package/src/wirings/queue/queue-runner.test.ts +5 -11
- package/src/wirings/queue/queue-runner.ts +11 -3
- package/src/wirings/rpc/rpc-runner.ts +82 -115
- package/src/wirings/scheduler/scheduler-runner.test.ts +5 -11
- package/src/wirings/scheduler/scheduler-runner.ts +13 -5
- package/src/wirings/trigger/trigger-runner.test.ts +10 -11
- package/src/wirings/trigger/trigger-runner.ts +6 -4
- package/src/wirings/workflow/dsl/workflow-runner.ts +11 -10
- package/src/wirings/workflow/graph/graph-runner.ts +19 -4
- package/src/wirings/workflow/index.ts +17 -6
- package/src/wirings/workflow/pikku-workflow-service.ts +284 -24
- package/src/wirings/workflow/workflow-queue-workers.ts +85 -0
- package/src/wirings/workflow/workflow.types.ts +16 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/wirings/ai-agent/agent-dynamic-workflow.d.ts +0 -6
- package/dist/wirings/ai-agent/agent-dynamic-workflow.js +0 -468
- package/dist/wirings/workflow/workflow-helpers.d.ts +0 -36
- package/dist/wirings/workflow/workflow-helpers.js +0 -38
- package/src/wirings/ai-agent/agent-dynamic-workflow.ts +0 -610
- package/src/wirings/workflow/workflow-helpers.test.ts +0 -129
- package/src/wirings/workflow/workflow-helpers.ts +0 -79
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { runQueueJob } from '../wirings/queue/queue-runner.js';
|
|
2
|
+
export class InMemoryQueueService {
|
|
3
|
+
supportsResults = false;
|
|
4
|
+
jobCounter = 0;
|
|
5
|
+
async add(queueName, data, options) {
|
|
6
|
+
const jobId = `inmem-${++this.jobCounter}`;
|
|
7
|
+
const job = {
|
|
8
|
+
id: jobId,
|
|
9
|
+
queueName,
|
|
10
|
+
data,
|
|
11
|
+
status: () => 'active',
|
|
12
|
+
pikkuUserId: options?.pikkuUserId,
|
|
13
|
+
};
|
|
14
|
+
const delay = options?.delay ?? 0;
|
|
15
|
+
setTimeout(async () => {
|
|
16
|
+
try {
|
|
17
|
+
await runQueueJob({ job });
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
console.error(`[InMemoryQueue] Job ${jobId} on ${queueName} failed:`, e.message);
|
|
21
|
+
}
|
|
22
|
+
}, delay);
|
|
23
|
+
return jobId;
|
|
24
|
+
}
|
|
25
|
+
async getJob() {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -10,8 +10,9 @@ export { TypedVariablesService } from './typed-variables-service.js';
|
|
|
10
10
|
export { LocalSecretService } from './local-secrets.js';
|
|
11
11
|
export { LocalCredentialService } from './local-credential-service.js';
|
|
12
12
|
export { LocalVariablesService } from './local-variables.js';
|
|
13
|
-
export { ConsoleLogger } from './logger-console.js';
|
|
13
|
+
export { ConsoleLogger, JsonConsoleLogger } from './logger-console.js';
|
|
14
14
|
export { InMemoryWorkflowService } from './in-memory-workflow-service.js';
|
|
15
|
+
export { InMemoryQueueService } from './in-memory-queue-service.js';
|
|
15
16
|
export { InMemoryTriggerService } from './in-memory-trigger-service.js';
|
|
16
17
|
export { InMemoryAIRunStateService } from './in-memory-ai-run-state-service.js';
|
|
17
18
|
export { LocalGatewayService } from './local-gateway-service.js';
|
|
@@ -34,3 +35,5 @@ export type { CredentialService } from './credential-service.js';
|
|
|
34
35
|
export { TypedCredentialService } from './typed-credential-service.js';
|
|
35
36
|
export type { CredentialStatusInfo, CredentialMetaInfo, } from './typed-credential-service.js';
|
|
36
37
|
export type { VariableStatus, VariableMeta } from './typed-variables-service.js';
|
|
38
|
+
export type { MetaService } from './meta-service.js';
|
|
39
|
+
export type { MCPMeta, RPCMetaRecord, ServiceMeta, ServicesMetaRecord, MiddlewareDefinitionMeta, MiddlewareInstanceMeta, GroupMeta, MiddlewareGroupsMeta, PermissionDefinitionMeta, PermissionsGroupsMeta, FunctionsMeta, FunctionMeta, MiddlewareMeta, PermissionMeta, AgentsMeta, AgentMeta, } from './meta-service.js';
|
package/dist/services/index.js
CHANGED
|
@@ -10,8 +10,9 @@ export { TypedVariablesService } from './typed-variables-service.js';
|
|
|
10
10
|
export { LocalSecretService } from './local-secrets.js';
|
|
11
11
|
export { LocalCredentialService } from './local-credential-service.js';
|
|
12
12
|
export { LocalVariablesService } from './local-variables.js';
|
|
13
|
-
export { ConsoleLogger } from './logger-console.js';
|
|
13
|
+
export { ConsoleLogger, JsonConsoleLogger } from './logger-console.js';
|
|
14
14
|
export { InMemoryWorkflowService } from './in-memory-workflow-service.js';
|
|
15
|
+
export { InMemoryQueueService } from './in-memory-queue-service.js';
|
|
15
16
|
export { InMemoryTriggerService } from './in-memory-trigger-service.js';
|
|
16
17
|
export { InMemoryAIRunStateService } from './in-memory-ai-run-state-service.js';
|
|
17
18
|
export { LocalGatewayService } from './local-gateway-service.js';
|
|
@@ -1,53 +1,39 @@
|
|
|
1
1
|
import type { Logger } from './logger.js';
|
|
2
2
|
import { LogLevel } from './logger.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Text-mode console logger.
|
|
5
|
+
* Output: `INFO: message` or `[traceId] INFO: message`
|
|
5
6
|
*/
|
|
6
7
|
export declare class ConsoleLogger implements Logger {
|
|
7
|
-
/**
|
|
8
|
-
* The current logging level.
|
|
9
|
-
*/
|
|
10
8
|
private level;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* @param level - The logging level to set.
|
|
14
|
-
*/
|
|
9
|
+
private prefix;
|
|
10
|
+
constructor(traceId?: string);
|
|
15
11
|
setLevel(level: LogLevel): void;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* @param meta - Additional metadata to log.
|
|
20
|
-
*/
|
|
21
|
-
trace?(message: string, ...meta: any[]): void;
|
|
22
|
-
/**
|
|
23
|
-
* Logs a debug message.
|
|
24
|
-
* @param message - The message to log.
|
|
25
|
-
* @param meta - Additional metadata to log.
|
|
26
|
-
*/
|
|
12
|
+
scope(traceId: string): Logger;
|
|
13
|
+
private log_;
|
|
14
|
+
trace(message: string, ...meta: any[]): void;
|
|
27
15
|
debug(message: string, ...meta: any[]): void;
|
|
28
|
-
/**
|
|
29
|
-
* Logs an informational message.
|
|
30
|
-
* @param messageOrObj - The message or object to log.
|
|
31
|
-
* @param meta - Additional metadata to log.
|
|
32
|
-
*/
|
|
33
16
|
info(messageOrObj: string | Record<string, any>, ...meta: any[]): void;
|
|
34
|
-
/**
|
|
35
|
-
* Logs a warning message.
|
|
36
|
-
* @param messageOrObj - The message or object to log.
|
|
37
|
-
* @param meta - Additional metadata to log.
|
|
38
|
-
*/
|
|
39
17
|
warn(messageOrObj: string | Record<string, any>, ...meta: any[]): void;
|
|
40
|
-
/**
|
|
41
|
-
* Logs an error message.
|
|
42
|
-
* @param messageOrObj - The message, object, or error to log.
|
|
43
|
-
* @param meta - Additional metadata to log.
|
|
44
|
-
*/
|
|
45
18
|
error(messageOrObj: string | Record<string, any> | Error, ...meta: any[]): void;
|
|
46
|
-
/**
|
|
47
|
-
* Logs a message at a specified level.
|
|
48
|
-
* @param level - The logging level.
|
|
49
|
-
* @param message - The message to log.
|
|
50
|
-
* @param meta - Additional metadata to log.
|
|
51
|
-
*/
|
|
52
19
|
log(level: string, message: string, ...meta: any[]): void;
|
|
53
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* JSON-mode console logger.
|
|
23
|
+
* Output: `{"level":"info","message":"...","traceId":"..."}`
|
|
24
|
+
* CF Workers Logs auto-indexes JSON keys for filtering.
|
|
25
|
+
*/
|
|
26
|
+
export declare class JsonConsoleLogger implements Logger {
|
|
27
|
+
private level;
|
|
28
|
+
private traceId;
|
|
29
|
+
constructor(traceId?: string);
|
|
30
|
+
setLevel(level: LogLevel): void;
|
|
31
|
+
scope(traceId: string): Logger;
|
|
32
|
+
trace(message: string, ...meta: any[]): void;
|
|
33
|
+
debug(message: string, ...meta: any[]): void;
|
|
34
|
+
info(messageOrObj: string | Record<string, any>, ...meta: any[]): void;
|
|
35
|
+
warn(messageOrObj: string | Record<string, any>, ...meta: any[]): void;
|
|
36
|
+
error(messageOrObj: string | Record<string, any> | Error, ...meta: any[]): void;
|
|
37
|
+
log(level: string, message: string, ...meta: any[]): void;
|
|
38
|
+
private emit;
|
|
39
|
+
}
|
|
@@ -1,82 +1,138 @@
|
|
|
1
1
|
import { LogLevel } from './logger.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Text-mode console logger.
|
|
4
|
+
* Output: `INFO: message` or `[traceId] INFO: message`
|
|
4
5
|
*/
|
|
5
6
|
export class ConsoleLogger {
|
|
6
|
-
/**
|
|
7
|
-
* The current logging level.
|
|
8
|
-
*/
|
|
9
7
|
level = LogLevel.info;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
prefix;
|
|
9
|
+
constructor(traceId) {
|
|
10
|
+
this.prefix = traceId ? `[${traceId}]` : '';
|
|
11
|
+
}
|
|
14
12
|
setLevel(level) {
|
|
15
13
|
this.level = level;
|
|
16
14
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
scope(traceId) {
|
|
16
|
+
const scoped = new ConsoleLogger(traceId);
|
|
17
|
+
scoped.level = this.level;
|
|
18
|
+
return scoped;
|
|
19
|
+
}
|
|
20
|
+
log_(fn, label, ...args) {
|
|
21
|
+
if (this.prefix) {
|
|
22
|
+
fn(this.prefix, label, ...args);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
fn(label, ...args);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
22
28
|
trace(message, ...meta) {
|
|
23
29
|
if (this.level <= LogLevel.trace) {
|
|
24
|
-
console.trace
|
|
30
|
+
this.log_(console.trace, 'TRACE:', message, ...meta);
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Logs a debug message.
|
|
29
|
-
* @param message - The message to log.
|
|
30
|
-
* @param meta - Additional metadata to log.
|
|
31
|
-
*/
|
|
32
33
|
debug(message, ...meta) {
|
|
33
34
|
if (this.level <= LogLevel.debug) {
|
|
34
|
-
console.debug
|
|
35
|
+
this.log_(console.debug, 'DEBUG:', message, ...meta);
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Logs an informational message.
|
|
39
|
-
* @param messageOrObj - The message or object to log.
|
|
40
|
-
* @param meta - Additional metadata to log.
|
|
41
|
-
*/
|
|
42
38
|
info(messageOrObj, ...meta) {
|
|
43
39
|
if (this.level <= LogLevel.info) {
|
|
44
|
-
console.info
|
|
40
|
+
this.log_(console.info, 'INFO:', messageOrObj, ...meta);
|
|
45
41
|
}
|
|
46
42
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Logs a warning message.
|
|
49
|
-
* @param messageOrObj - The message or object to log.
|
|
50
|
-
* @param meta - Additional metadata to log.
|
|
51
|
-
*/
|
|
52
43
|
warn(messageOrObj, ...meta) {
|
|
53
44
|
if (this.level <= LogLevel.warn) {
|
|
54
|
-
console.warn
|
|
45
|
+
this.log_(console.warn, 'WARN:', messageOrObj, ...meta);
|
|
55
46
|
}
|
|
56
47
|
}
|
|
57
|
-
/**
|
|
58
|
-
* Logs an error message.
|
|
59
|
-
* @param messageOrObj - The message, object, or error to log.
|
|
60
|
-
* @param meta - Additional metadata to log.
|
|
61
|
-
*/
|
|
62
48
|
error(messageOrObj, ...meta) {
|
|
63
49
|
if (this.level <= LogLevel.error) {
|
|
64
|
-
console.error
|
|
50
|
+
this.log_(console.error, 'ERROR:', messageOrObj instanceof Error ? messageOrObj.message : messageOrObj, ...meta);
|
|
65
51
|
if (messageOrObj instanceof Error) {
|
|
66
|
-
console.error
|
|
52
|
+
this.log_(console.error, 'STACK:', messageOrObj.stack);
|
|
67
53
|
}
|
|
68
54
|
}
|
|
69
55
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Logs a message at a specified level.
|
|
72
|
-
* @param level - The logging level.
|
|
73
|
-
* @param message - The message to log.
|
|
74
|
-
* @param meta - Additional metadata to log.
|
|
75
|
-
*/
|
|
76
56
|
log(level, message, ...meta) {
|
|
77
57
|
const logLevel = LogLevel[level];
|
|
78
58
|
if (this.level <= logLevel) {
|
|
79
|
-
console.log
|
|
59
|
+
this.log_(console.log, `${level.toUpperCase()}:`, message, ...meta);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* JSON-mode console logger.
|
|
65
|
+
* Output: `{"level":"info","message":"...","traceId":"..."}`
|
|
66
|
+
* CF Workers Logs auto-indexes JSON keys for filtering.
|
|
67
|
+
*/
|
|
68
|
+
export class JsonConsoleLogger {
|
|
69
|
+
level = LogLevel.info;
|
|
70
|
+
traceId;
|
|
71
|
+
constructor(traceId) {
|
|
72
|
+
this.traceId = traceId;
|
|
73
|
+
}
|
|
74
|
+
setLevel(level) {
|
|
75
|
+
this.level = level;
|
|
76
|
+
}
|
|
77
|
+
scope(traceId) {
|
|
78
|
+
const scoped = new JsonConsoleLogger(traceId);
|
|
79
|
+
scoped.level = this.level;
|
|
80
|
+
return scoped;
|
|
81
|
+
}
|
|
82
|
+
trace(message, ...meta) {
|
|
83
|
+
if (this.level <= LogLevel.trace) {
|
|
84
|
+
this.emit(console.debug, 'trace', message, meta);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
debug(message, ...meta) {
|
|
88
|
+
if (this.level <= LogLevel.debug) {
|
|
89
|
+
this.emit(console.debug, 'debug', message, meta);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
info(messageOrObj, ...meta) {
|
|
93
|
+
if (this.level <= LogLevel.info) {
|
|
94
|
+
this.emit(console.info, 'info', messageOrObj, meta);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
warn(messageOrObj, ...meta) {
|
|
98
|
+
if (this.level <= LogLevel.warn) {
|
|
99
|
+
this.emit(console.warn, 'warn', messageOrObj, meta);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
error(messageOrObj, ...meta) {
|
|
103
|
+
if (this.level <= LogLevel.error) {
|
|
104
|
+
if (messageOrObj instanceof Error) {
|
|
105
|
+
this.emit(console.error, 'error', messageOrObj.message, meta);
|
|
106
|
+
console.error(JSON.stringify({
|
|
107
|
+
level: 'error',
|
|
108
|
+
message: 'stack',
|
|
109
|
+
stack: messageOrObj.stack,
|
|
110
|
+
...(this.traceId ? { traceId: this.traceId } : {}),
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.emit(console.error, 'error', messageOrObj, meta);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
log(level, message, ...meta) {
|
|
119
|
+
const logLevel = LogLevel[level];
|
|
120
|
+
if (this.level <= logLevel) {
|
|
121
|
+
this.emit(console.log, level, message, meta);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
emit(fn, level, messageOrObj, meta) {
|
|
125
|
+
const entry = { level };
|
|
126
|
+
if (this.traceId)
|
|
127
|
+
entry.traceId = this.traceId;
|
|
128
|
+
if (typeof messageOrObj === 'string') {
|
|
129
|
+
entry.message = messageOrObj;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
Object.assign(entry, messageOrObj);
|
|
80
133
|
}
|
|
134
|
+
if (meta.length > 0)
|
|
135
|
+
entry.meta = meta;
|
|
136
|
+
fn(JSON.stringify(entry));
|
|
81
137
|
}
|
|
82
138
|
}
|
|
@@ -45,4 +45,9 @@ export interface Logger {
|
|
|
45
45
|
* @param level - The logging level to set.
|
|
46
46
|
*/
|
|
47
47
|
setLevel(level: LogLevel): void;
|
|
48
|
+
/**
|
|
49
|
+
* Creates a scoped logger with a traceId included in every log entry.
|
|
50
|
+
* Used per-request to correlate logs across function calls.
|
|
51
|
+
*/
|
|
52
|
+
scope?(traceId: string): Logger;
|
|
48
53
|
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import type { JSONSchema7 } from 'json-schema';
|
|
2
|
+
import type { HTTPWiringsMeta } from '../wirings/http/http.types.js';
|
|
3
|
+
import type { ChannelsMeta } from '../wirings/channel/channel.types.js';
|
|
4
|
+
import type { ScheduledTasksMeta } from '../wirings/scheduler/scheduler.types.js';
|
|
5
|
+
import type { QueueWorkersMeta } from '../wirings/queue/queue.types.js';
|
|
6
|
+
import type { CLIMeta } from '../wirings/cli/cli.types.js';
|
|
7
|
+
import type { MCPResourceMeta, MCPToolMeta, MCPPromptMeta } from '../wirings/mcp/mcp.types.js';
|
|
8
|
+
import type { WorkflowsMeta } from '../wirings/workflow/workflow.types.js';
|
|
9
|
+
import type { TriggerMeta, TriggerSourceMeta } from '../wirings/trigger/trigger.types.js';
|
|
10
|
+
import type { SecretDefinitionsMeta } from '../wirings/secret/secret.types.js';
|
|
11
|
+
import type { CredentialDefinitionsMeta } from '../wirings/credential/credential.types.js';
|
|
12
|
+
import type { VariableDefinitionsMeta } from '../wirings/variable/variable.types.js';
|
|
13
|
+
import type { FunctionMeta, FunctionsMeta, MiddlewareMetadata, PermissionMetadata } from '../types/core.types.js';
|
|
14
|
+
import type { AIAgentMeta } from '../wirings/ai-agent/ai-agent.types.js';
|
|
15
|
+
export type { FunctionMeta, FunctionsMeta, MiddlewareMetadata as MiddlewareMeta, PermissionMetadata as PermissionMeta, };
|
|
16
|
+
export type AgentsMeta = AIAgentMeta;
|
|
17
|
+
export type AgentMeta = AIAgentMeta[string];
|
|
18
|
+
export interface MCPMeta {
|
|
19
|
+
resources: MCPResourceMeta;
|
|
20
|
+
tools: MCPToolMeta;
|
|
21
|
+
prompts: MCPPromptMeta;
|
|
22
|
+
}
|
|
23
|
+
export type RPCMetaRecord = Record<string, string>;
|
|
24
|
+
export interface ServiceMeta {
|
|
25
|
+
name: string;
|
|
26
|
+
summary: string;
|
|
27
|
+
description: string;
|
|
28
|
+
package: string;
|
|
29
|
+
path: string;
|
|
30
|
+
version: string;
|
|
31
|
+
interface: string;
|
|
32
|
+
expandedProperties: Record<string, string>;
|
|
33
|
+
}
|
|
34
|
+
export type ServicesMetaRecord = Record<string, ServiceMeta>;
|
|
35
|
+
export interface MiddlewareDefinitionMeta {
|
|
36
|
+
services: {
|
|
37
|
+
optimized: boolean;
|
|
38
|
+
services: string[];
|
|
39
|
+
};
|
|
40
|
+
sourceFile: string;
|
|
41
|
+
position: number;
|
|
42
|
+
exportedName: string | null;
|
|
43
|
+
factory?: boolean;
|
|
44
|
+
name?: string;
|
|
45
|
+
description?: string;
|
|
46
|
+
package?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface MiddlewareInstanceMeta {
|
|
49
|
+
definitionId: string;
|
|
50
|
+
sourceFile: string;
|
|
51
|
+
position: number;
|
|
52
|
+
isFactoryCall: boolean;
|
|
53
|
+
}
|
|
54
|
+
export interface GroupMeta {
|
|
55
|
+
exportName: string | null;
|
|
56
|
+
sourceFile: string;
|
|
57
|
+
position: number;
|
|
58
|
+
services: {
|
|
59
|
+
optimized: boolean;
|
|
60
|
+
services: string[];
|
|
61
|
+
};
|
|
62
|
+
count: number;
|
|
63
|
+
instanceIds: string[];
|
|
64
|
+
isFactory: boolean;
|
|
65
|
+
}
|
|
66
|
+
export interface MiddlewareGroupsMeta {
|
|
67
|
+
definitions: Record<string, MiddlewareDefinitionMeta>;
|
|
68
|
+
instances: Record<string, MiddlewareInstanceMeta>;
|
|
69
|
+
httpGroups: Record<string, GroupMeta>;
|
|
70
|
+
tagGroups: Record<string, GroupMeta>;
|
|
71
|
+
}
|
|
72
|
+
export interface PermissionDefinitionMeta {
|
|
73
|
+
services: {
|
|
74
|
+
optimized: boolean;
|
|
75
|
+
services: string[];
|
|
76
|
+
};
|
|
77
|
+
sourceFile: string;
|
|
78
|
+
position: number;
|
|
79
|
+
exportedName: string | null;
|
|
80
|
+
factory?: boolean;
|
|
81
|
+
name?: string;
|
|
82
|
+
description?: string;
|
|
83
|
+
}
|
|
84
|
+
export interface PermissionsGroupsMeta {
|
|
85
|
+
definitions: Record<string, PermissionDefinitionMeta>;
|
|
86
|
+
httpGroups: Record<string, GroupMeta>;
|
|
87
|
+
tagGroups: Record<string, GroupMeta>;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Abstraction over .pikku metadata file access.
|
|
91
|
+
* All paths are relative to the .pikku root directory.
|
|
92
|
+
*
|
|
93
|
+
* Node.js uses LocalMetaService (filesystem).
|
|
94
|
+
* Cloudflare uses an R2/KV implementation.
|
|
95
|
+
*/
|
|
96
|
+
export interface MetaService {
|
|
97
|
+
/** Base path for local filesystem implementations. Undefined for remote/non-local implementations. */
|
|
98
|
+
readonly basePath?: string;
|
|
99
|
+
/** Read a file's content by relative path. Returns null if not found. */
|
|
100
|
+
readFile(relativePath: string): Promise<string | null>;
|
|
101
|
+
/** List files in a directory by relative path. Returns empty array if not found. */
|
|
102
|
+
readDir(relativePath: string): Promise<string[]>;
|
|
103
|
+
getHttpMeta(): Promise<HTTPWiringsMeta>;
|
|
104
|
+
getChannelsMeta(): Promise<ChannelsMeta>;
|
|
105
|
+
getSchedulerMeta(): Promise<ScheduledTasksMeta>;
|
|
106
|
+
getQueueMeta(): Promise<QueueWorkersMeta>;
|
|
107
|
+
getCliMeta(): Promise<CLIMeta>;
|
|
108
|
+
getMcpMeta(): Promise<MCPMeta>;
|
|
109
|
+
getRpcMeta(): Promise<RPCMetaRecord>;
|
|
110
|
+
getWorkflowMeta(): Promise<WorkflowsMeta>;
|
|
111
|
+
getTriggerMeta(): Promise<TriggerMeta>;
|
|
112
|
+
getTriggerSourceMeta(): Promise<TriggerSourceMeta>;
|
|
113
|
+
getFunctionsMeta(): Promise<FunctionsMeta>;
|
|
114
|
+
getMiddlewareGroupsMeta(): Promise<MiddlewareGroupsMeta>;
|
|
115
|
+
getPermissionsGroupsMeta(): Promise<PermissionsGroupsMeta>;
|
|
116
|
+
getAgentsMeta(): Promise<AgentsMeta>;
|
|
117
|
+
getSecretsMeta(): Promise<SecretDefinitionsMeta>;
|
|
118
|
+
getCredentialsMeta(): Promise<CredentialDefinitionsMeta>;
|
|
119
|
+
getVariablesMeta(): Promise<VariableDefinitionsMeta>;
|
|
120
|
+
getServicesMeta(): Promise<ServicesMetaRecord>;
|
|
121
|
+
getSchema(schemaName: string): Promise<JSONSchema7 | null>;
|
|
122
|
+
getSchemas(schemaNames: string[]): Promise<Record<string, JSONSchema7 | null>>;
|
|
123
|
+
clearCache(): void;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Node.js filesystem implementation of MetaService.
|
|
127
|
+
* Reads .gen.json files from a local .pikku directory.
|
|
128
|
+
*/
|
|
129
|
+
export declare class LocalMetaService implements MetaService {
|
|
130
|
+
readonly basePath: string;
|
|
131
|
+
private httpMetaCache;
|
|
132
|
+
private channelsMetaCache;
|
|
133
|
+
private schedulerMetaCache;
|
|
134
|
+
private queueMetaCache;
|
|
135
|
+
private cliMetaCache;
|
|
136
|
+
private mcpMetaCache;
|
|
137
|
+
private rpcMetaCache;
|
|
138
|
+
private workflowMetaCache;
|
|
139
|
+
private triggerMetaCache;
|
|
140
|
+
private triggerSourceMetaCache;
|
|
141
|
+
private functionsMetaCache;
|
|
142
|
+
private servicesMetaCache;
|
|
143
|
+
private secretsMetaCache;
|
|
144
|
+
private credentialsMetaCache;
|
|
145
|
+
private variablesMetaCache;
|
|
146
|
+
private middlewareGroupsMetaCache;
|
|
147
|
+
private permissionsGroupsMetaCache;
|
|
148
|
+
private agentsMetaCache;
|
|
149
|
+
private schemaCache;
|
|
150
|
+
constructor(basePath: string);
|
|
151
|
+
readFile(relativePath: string): Promise<string | null>;
|
|
152
|
+
readDir(relativePath: string): Promise<string[]>;
|
|
153
|
+
clearCache(): void;
|
|
154
|
+
private readMetaJson;
|
|
155
|
+
getHttpMeta(): Promise<HTTPWiringsMeta>;
|
|
156
|
+
getChannelsMeta(): Promise<ChannelsMeta>;
|
|
157
|
+
getSchedulerMeta(): Promise<ScheduledTasksMeta>;
|
|
158
|
+
getQueueMeta(): Promise<QueueWorkersMeta>;
|
|
159
|
+
getCliMeta(): Promise<CLIMeta>;
|
|
160
|
+
getMcpMeta(): Promise<MCPMeta>;
|
|
161
|
+
getRpcMeta(): Promise<RPCMetaRecord>;
|
|
162
|
+
getWorkflowMeta(): Promise<WorkflowsMeta>;
|
|
163
|
+
getTriggerMeta(): Promise<TriggerMeta>;
|
|
164
|
+
getTriggerSourceMeta(): Promise<TriggerSourceMeta>;
|
|
165
|
+
getFunctionsMeta(): Promise<FunctionsMeta>;
|
|
166
|
+
getMiddlewareGroupsMeta(): Promise<MiddlewareGroupsMeta>;
|
|
167
|
+
getPermissionsGroupsMeta(): Promise<PermissionsGroupsMeta>;
|
|
168
|
+
getAgentsMeta(): Promise<AgentsMeta>;
|
|
169
|
+
getSecretsMeta(): Promise<SecretDefinitionsMeta>;
|
|
170
|
+
getCredentialsMeta(): Promise<CredentialDefinitionsMeta>;
|
|
171
|
+
getVariablesMeta(): Promise<VariableDefinitionsMeta>;
|
|
172
|
+
getServicesMeta(): Promise<ServicesMetaRecord>;
|
|
173
|
+
getSchema(schemaName: string): Promise<JSONSchema7 | null>;
|
|
174
|
+
getSchemas(schemaNames: string[]): Promise<Record<string, JSONSchema7 | null>>;
|
|
175
|
+
}
|