@on-mission/sdk 0.1.1 → 0.1.2
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/logging.d.ts +45 -14
- package/dist/logging.d.ts.map +1 -1
- package/dist/logging.js +117 -31
- package/dist/logging.js.map +1 -1
- package/dist/sdk.d.ts +3 -0
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +10 -2
- package/dist/sdk.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export type { ConfigModule } from './config';
|
|
|
15
15
|
export type { PluginContext } from './context';
|
|
16
16
|
export type { AgentMessage, EventsModule } from './events';
|
|
17
17
|
export type { IngressHandler, IngressModule, IngressRequest, IngressResponse, IngressStreamEvents, IngressUrl } from './ingress';
|
|
18
|
+
export type { LogModule } from './logging';
|
|
18
19
|
export type { MissionSDK, MissionSDKOptions } from './sdk';
|
|
19
20
|
export { createMissionSDK } from './sdk';
|
|
20
21
|
export type { ToolHandler, ToolsModule } from './tool-registry';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,sBAAsB,EACtB,QAAQ,EACT,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAC3E,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC1D,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,UAAU,EACX,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,sBAAsB,EACtB,QAAQ,EACT,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAC3E,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC1D,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,UAAU,EACX,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC1C,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAuBH,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA"}
|
package/dist/logging.d.ts
CHANGED
|
@@ -1,31 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Logging Module
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* This means plugin authors use `console.log()` naturally and we
|
|
6
|
-
* automatically capture, structure, enrich, and forward logs.
|
|
4
|
+
* Provides two logging mechanisms:
|
|
7
5
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* 1. Console capture — overrides the global `console` object so that
|
|
7
|
+
* plugin authors who use `console.log()` naturally get their logs
|
|
8
|
+
* forwarded to the Mission logging pipeline.
|
|
11
9
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* - message (the formatted log content)
|
|
15
|
-
* - timestamp (ISO 8601)
|
|
10
|
+
* 2. Structured logger — `mission.log.info(message, data?)` for plugins
|
|
11
|
+
* that want explicit, structured logging with context.
|
|
16
12
|
*
|
|
17
|
-
*
|
|
13
|
+
* Both paths feed into the same batched transport. Log entries are
|
|
14
|
+
* buffered in memory and flushed every few seconds (or on threshold)
|
|
15
|
+
* to the Gateway via `plugin.ingestLogs`. The Gateway enriches entries
|
|
16
|
+
* with installation metadata and forwards them to Better Stack.
|
|
18
17
|
*
|
|
19
|
-
*
|
|
20
|
-
* `console.log` instead of a custom logging function.
|
|
18
|
+
* Transport: plugin.ingestLogs tRPC mutation (batched, fire-and-forget).
|
|
21
19
|
*/
|
|
22
20
|
import type { ApiClient } from './api';
|
|
21
|
+
type LogLevel = 'log' | 'error' | 'warn' | 'info' | 'debug';
|
|
22
|
+
export type LogEntry = {
|
|
23
|
+
level: LogLevel;
|
|
24
|
+
message: string;
|
|
25
|
+
data?: Record<string, unknown>;
|
|
26
|
+
timestamp: string;
|
|
27
|
+
};
|
|
28
|
+
export type LogModule = {
|
|
29
|
+
/** Log at info level. */
|
|
30
|
+
info: (message: string, data?: Record<string, unknown>) => void;
|
|
31
|
+
/** Log at warn level. */
|
|
32
|
+
warn: (message: string, data?: Record<string, unknown>) => void;
|
|
33
|
+
/** Log at error level. */
|
|
34
|
+
error: (message: string, data?: Record<string, unknown>) => void;
|
|
35
|
+
/** Log at debug level. */
|
|
36
|
+
debug: (message: string, data?: Record<string, unknown>) => void;
|
|
37
|
+
};
|
|
23
38
|
/**
|
|
24
39
|
* Override the global console to capture and forward all log output.
|
|
25
40
|
*
|
|
26
41
|
* This should be called once during SDK initialization (in connect()).
|
|
27
42
|
* After this call, all console.log/error/warn/info/debug calls will
|
|
28
|
-
* be intercepted, enriched with metadata, and
|
|
43
|
+
* be intercepted, enriched with metadata, and batched for shipping.
|
|
29
44
|
*/
|
|
30
45
|
export declare function installLogging(api: ApiClient): void;
|
|
46
|
+
/**
|
|
47
|
+
* Create a structured log module.
|
|
48
|
+
*
|
|
49
|
+
* Unlike the console override (which captures string output), this
|
|
50
|
+
* provides a typed API with structured data:
|
|
51
|
+
*
|
|
52
|
+
* mission.log.info('Searching inbox', { query, maxResults })
|
|
53
|
+
* mission.log.error('Gmail API failed', { status: 401 })
|
|
54
|
+
*/
|
|
55
|
+
export declare function createLogModule(): LogModule;
|
|
56
|
+
/**
|
|
57
|
+
* Flush any remaining logs and stop the timer.
|
|
58
|
+
* Called during graceful shutdown.
|
|
59
|
+
*/
|
|
60
|
+
export declare function flushAndStop(): Promise<void>;
|
|
61
|
+
export {};
|
|
31
62
|
//# sourceMappingURL=logging.d.ts.map
|
package/dist/logging.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,KAAK,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE3D,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,yBAAyB;IACzB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/D,yBAAyB;IACzB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/D,0BAA0B;IAC1B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAChE,0BAA0B;IAC1B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CACjE,CAAA;AA6DD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAiDnD;AAID;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,SAAS,CA4B3C;AAID;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAMlD"}
|
package/dist/logging.js
CHANGED
|
@@ -1,35 +1,77 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Logging Module
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* This means plugin authors use `console.log()` naturally and we
|
|
6
|
-
* automatically capture, structure, enrich, and forward logs.
|
|
4
|
+
* Provides two logging mechanisms:
|
|
7
5
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* 1. Console capture — overrides the global `console` object so that
|
|
7
|
+
* plugin authors who use `console.log()` naturally get their logs
|
|
8
|
+
* forwarded to the Mission logging pipeline.
|
|
11
9
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* - message (the formatted log content)
|
|
15
|
-
* - timestamp (ISO 8601)
|
|
10
|
+
* 2. Structured logger — `mission.log.info(message, data?)` for plugins
|
|
11
|
+
* that want explicit, structured logging with context.
|
|
16
12
|
*
|
|
17
|
-
*
|
|
13
|
+
* Both paths feed into the same batched transport. Log entries are
|
|
14
|
+
* buffered in memory and flushed every few seconds (or on threshold)
|
|
15
|
+
* to the Gateway via `plugin.ingestLogs`. The Gateway enriches entries
|
|
16
|
+
* with installation metadata and forwards them to Better Stack.
|
|
18
17
|
*
|
|
19
|
-
*
|
|
20
|
-
* `console.log` instead of a custom logging function.
|
|
18
|
+
* Transport: plugin.ingestLogs tRPC mutation (batched, fire-and-forget).
|
|
21
19
|
*/
|
|
22
|
-
// ───
|
|
20
|
+
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
21
|
+
/** How often to flush the log buffer (ms). */
|
|
22
|
+
const FLUSH_INTERVAL_MS = 5_000;
|
|
23
|
+
/** Max entries before triggering an early flush. */
|
|
24
|
+
const FLUSH_THRESHOLD = 50;
|
|
25
|
+
// ─── Buffer ──────────────────────────────────────────────────────────────────
|
|
26
|
+
let buffer = [];
|
|
27
|
+
let flushTimer = null;
|
|
28
|
+
let apiRef = null;
|
|
29
|
+
let originalConsole = null;
|
|
30
|
+
function getOriginal() {
|
|
31
|
+
// Return saved originals if we've installed console override,
|
|
32
|
+
// otherwise return the current console (pre-install).
|
|
33
|
+
return (originalConsole ?? {
|
|
34
|
+
log: console.log.bind(console),
|
|
35
|
+
error: console.error.bind(console),
|
|
36
|
+
warn: console.warn.bind(console),
|
|
37
|
+
info: console.info.bind(console),
|
|
38
|
+
debug: console.debug.bind(console)
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function enqueue(entry) {
|
|
42
|
+
buffer.push(entry);
|
|
43
|
+
if (buffer.length >= FLUSH_THRESHOLD) {
|
|
44
|
+
void flush();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async function flush() {
|
|
48
|
+
if (buffer.length === 0 || !apiRef)
|
|
49
|
+
return;
|
|
50
|
+
const entries = buffer;
|
|
51
|
+
buffer = [];
|
|
52
|
+
try {
|
|
53
|
+
await apiRef.trpc.plugin.ingestLogs.mutate({ entries });
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
getOriginal().error('[Logging] Flush failed:', err);
|
|
57
|
+
// Re-enqueue failed entries (drop if buffer is huge to avoid OOM)
|
|
58
|
+
if (buffer.length < 500) {
|
|
59
|
+
buffer.unshift(...entries);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// ─── Console Override ────────────────────────────────────────────────────────
|
|
23
64
|
/**
|
|
24
65
|
* Override the global console to capture and forward all log output.
|
|
25
66
|
*
|
|
26
67
|
* This should be called once during SDK initialization (in connect()).
|
|
27
68
|
* After this call, all console.log/error/warn/info/debug calls will
|
|
28
|
-
* be intercepted, enriched with metadata, and
|
|
69
|
+
* be intercepted, enriched with metadata, and batched for shipping.
|
|
29
70
|
*/
|
|
30
71
|
export function installLogging(api) {
|
|
72
|
+
apiRef = api;
|
|
31
73
|
// Preserve original console methods
|
|
32
|
-
|
|
74
|
+
originalConsole = {
|
|
33
75
|
log: console.log.bind(console),
|
|
34
76
|
error: console.error.bind(console),
|
|
35
77
|
warn: console.warn.bind(console),
|
|
@@ -40,7 +82,7 @@ export function installLogging(api) {
|
|
|
40
82
|
for (const level of levels) {
|
|
41
83
|
console[level] = (...args) => {
|
|
42
84
|
// 1. Still output to stdout/stderr for local visibility
|
|
43
|
-
|
|
85
|
+
originalConsole[level](...args);
|
|
44
86
|
// 2. Format the message
|
|
45
87
|
const message = args
|
|
46
88
|
.map(arg => {
|
|
@@ -56,22 +98,66 @@ export function installLogging(api) {
|
|
|
56
98
|
}
|
|
57
99
|
})
|
|
58
100
|
.join(' ');
|
|
59
|
-
// 3.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
level,
|
|
65
|
-
message,
|
|
66
|
-
args,
|
|
67
|
-
timestamp: new Date().toISOString()
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
})
|
|
71
|
-
.catch((err) => {
|
|
72
|
-
original.error('[Logging] ingest failed:', err);
|
|
101
|
+
// 3. Enqueue for batched shipping
|
|
102
|
+
enqueue({
|
|
103
|
+
level,
|
|
104
|
+
message,
|
|
105
|
+
timestamp: new Date().toISOString()
|
|
73
106
|
});
|
|
74
107
|
};
|
|
75
108
|
}
|
|
109
|
+
// Start the flush timer
|
|
110
|
+
flushTimer = setInterval(() => {
|
|
111
|
+
void flush();
|
|
112
|
+
}, FLUSH_INTERVAL_MS);
|
|
113
|
+
if (flushTimer.unref) {
|
|
114
|
+
flushTimer.unref();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// ─── Structured Logger ───────────────────────────────────────────────────────
|
|
118
|
+
/**
|
|
119
|
+
* Create a structured log module.
|
|
120
|
+
*
|
|
121
|
+
* Unlike the console override (which captures string output), this
|
|
122
|
+
* provides a typed API with structured data:
|
|
123
|
+
*
|
|
124
|
+
* mission.log.info('Searching inbox', { query, maxResults })
|
|
125
|
+
* mission.log.error('Gmail API failed', { status: 401 })
|
|
126
|
+
*/
|
|
127
|
+
export function createLogModule() {
|
|
128
|
+
const log = (level, message, data) => {
|
|
129
|
+
// Also output to local console for sandbox visibility
|
|
130
|
+
const orig = getOriginal();
|
|
131
|
+
if (data) {
|
|
132
|
+
orig[level](`[${level.toUpperCase()}]`, message, data);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
orig[level](`[${level.toUpperCase()}]`, message);
|
|
136
|
+
}
|
|
137
|
+
enqueue({
|
|
138
|
+
level,
|
|
139
|
+
message,
|
|
140
|
+
data,
|
|
141
|
+
timestamp: new Date().toISOString()
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
return {
|
|
145
|
+
info: (message, data) => log('info', message, data),
|
|
146
|
+
warn: (message, data) => log('warn', message, data),
|
|
147
|
+
error: (message, data) => log('error', message, data),
|
|
148
|
+
debug: (message, data) => log('debug', message, data)
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
// ─── Lifecycle ───────────────────────────────────────────────────────────────
|
|
152
|
+
/**
|
|
153
|
+
* Flush any remaining logs and stop the timer.
|
|
154
|
+
* Called during graceful shutdown.
|
|
155
|
+
*/
|
|
156
|
+
export async function flushAndStop() {
|
|
157
|
+
if (flushTimer) {
|
|
158
|
+
clearInterval(flushTimer);
|
|
159
|
+
flushTimer = null;
|
|
160
|
+
}
|
|
161
|
+
await flush();
|
|
76
162
|
}
|
|
77
163
|
//# sourceMappingURL=logging.js.map
|
package/dist/logging.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ import { type ConfigModule } from './config';
|
|
|
28
28
|
import { type PluginContext } from './context';
|
|
29
29
|
import { type EventsModule } from './events';
|
|
30
30
|
import { type IngressModule } from './ingress';
|
|
31
|
+
import { type LogModule } from './logging';
|
|
31
32
|
import { type ToolsModule } from './tool-registry';
|
|
32
33
|
export type MissionSDKOptions = {
|
|
33
34
|
/**
|
|
@@ -53,6 +54,8 @@ export type MissionSDK = {
|
|
|
53
54
|
events: EventsModule;
|
|
54
55
|
/** Register ingress handlers and discover public URLs. */
|
|
55
56
|
ingress: IngressModule;
|
|
57
|
+
/** Structured logger — logs are batched and shipped to the Mission platform. */
|
|
58
|
+
log: LogModule;
|
|
56
59
|
/** Register tool handlers that the platform can invoke. */
|
|
57
60
|
tools: ToolsModule;
|
|
58
61
|
/**
|
package/dist/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,KAAK,aAAa,EAAsB,MAAM,WAAW,CAAA;AAClE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AAEhE,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,KAAK,aAAa,EAAsB,MAAM,WAAW,CAAA;AAClE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AAEhE,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,WAAW,CAAA;AAClB,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,WAAW,CAAA;AAClB,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAA;AAIxB,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,mCAAmC;IACnC,OAAO,EAAE,aAAa,CAAA;IACtB,kFAAkF;IAClF,IAAI,EAAE,UAAU,CAAA;IAChB,4CAA4C;IAC5C,MAAM,EAAE,YAAY,CAAA;IACpB,wDAAwD;IACxD,MAAM,EAAE,YAAY,CAAA;IACpB,0DAA0D;IAC1D,OAAO,EAAE,aAAa,CAAA;IACtB,gFAAgF;IAChF,GAAG,EAAE,SAAS,CAAA;IACd,2DAA2D;IAC3D,KAAK,EAAE,WAAW,CAAA;IAElB;;;;;;;;;OASG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1B;;;;;;;;;;;;;;;OAeG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1D,CAAA;AAaD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,UAAU,CA6TxE"}
|
package/dist/sdk.js
CHANGED
|
@@ -30,7 +30,7 @@ import { readContextFromEnv } from './context.js';
|
|
|
30
30
|
import { createEventsModule } from './events.js';
|
|
31
31
|
import { createHttpServer } from './http-server.js';
|
|
32
32
|
import { createIngressRegistry } from './ingress.js';
|
|
33
|
-
import { installLogging } from './logging.js';
|
|
33
|
+
import { createLogModule, flushAndStop, installLogging } from './logging.js';
|
|
34
34
|
import { createToolRegistry } from './tool-registry.js';
|
|
35
35
|
// ─── Factory ─────────────────────────────────────────────────────────────────
|
|
36
36
|
/** Interval between keep-alive heartbeats (in ms). */
|
|
@@ -159,7 +159,14 @@ export function createMissionSDK(options) {
|
|
|
159
159
|
console.error('[SDK] Shutdown handler error:', err);
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
|
-
// 3.
|
|
162
|
+
// 3. Flush remaining logs
|
|
163
|
+
try {
|
|
164
|
+
await flushAndStop();
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
console.error('[SDK] Error flushing logs:', err);
|
|
168
|
+
}
|
|
169
|
+
// 4. Stop the HTTP server
|
|
163
170
|
try {
|
|
164
171
|
await httpServer.stop();
|
|
165
172
|
}
|
|
@@ -267,6 +274,7 @@ export function createMissionSDK(options) {
|
|
|
267
274
|
config: createConfigModule(api),
|
|
268
275
|
events: createEventsModule(api),
|
|
269
276
|
ingress: ingressRegistry,
|
|
277
|
+
log: createLogModule(),
|
|
270
278
|
tools: toolRegistry,
|
|
271
279
|
connect: async () => {
|
|
272
280
|
// 1. Install console override for structured logging
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAkB,eAAe,EAAE,MAAM,OAAO,CAAA;AACvD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAqB,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAsB,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAqB,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAyB,MAAM,eAAe,CAAA;AACvE,OAAO,EACL,qBAAqB,EAGtB,MAAM,WAAW,CAAA;AAClB,OAAO,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|