@pikku/cli 0.12.83 → 0.12.85
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/console-app/assets/{index-CN_U0k_D.js → index-CEv-kj3J.js} +147 -150
- package/console-app/assets/index-CSzCJzBb.css +1 -0
- package/console-app/index.html +2 -2
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +3 -2
- package/dist/.pikku/{http/pikku-http-wirings.gen.d.ts → auth/auth.types.d.ts} +1 -1
- package/dist/.pikku/auth/auth.types.js +5 -0
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-channel.d.ts +4 -4
- package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +24 -14
- package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +6 -21
- package/dist/.pikku/function/pikku-functions.gen.js +1 -3
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -5
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -5
- package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +1 -2
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +1 -7
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
- package/dist/.pikku/workflow/meta/allWorkflow.gen.json +2 -2
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +8 -2
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/bin/pikku-bin.mjs +2 -2
- package/dist/src/fabric/fabric-commands.d.ts +50 -50
- package/dist/src/fabric/functions/add.function.d.ts +2 -2
- package/dist/src/fabric/functions/addon-verify.function.d.ts +2 -2
- package/dist/src/fabric/functions/db-schema.function.d.ts +2 -2
- package/dist/src/fabric/functions/deploy-list.function.d.ts +2 -2
- package/dist/src/fabric/functions/deploy-units.function.d.ts +2 -2
- package/dist/src/fabric/functions/deploy.function.d.ts +4 -4
- package/dist/src/fabric/functions/domains-add.function.d.ts +2 -2
- package/dist/src/fabric/functions/domains-list.function.d.ts +2 -2
- package/dist/src/fabric/functions/domains-remove.function.d.ts +2 -2
- package/dist/src/fabric/functions/errors.function.d.ts +2 -2
- package/dist/src/fabric/functions/init.function.d.ts +2 -2
- package/dist/src/fabric/functions/link.function.d.ts +2 -2
- package/dist/src/fabric/functions/llm-key.function.d.ts +2 -2
- package/dist/src/fabric/functions/login.function.d.ts +2 -2
- package/dist/src/fabric/functions/logs.function.d.ts +2 -2
- package/dist/src/fabric/functions/metrics.function.d.ts +2 -2
- package/dist/src/fabric/functions/publish.function.d.ts +2 -2
- package/dist/src/fabric/functions/rollback.function.d.ts +2 -2
- package/dist/src/fabric/functions/secrets-list.function.d.ts +2 -2
- package/dist/src/fabric/functions/secrets-set.function.d.ts +2 -2
- package/dist/src/fabric/functions/smoke.function.d.ts +2 -2
- package/dist/src/fabric/functions/status.function.d.ts +2 -2
- package/dist/src/fabric/functions/trace.function.d.ts +2 -2
- package/dist/src/fabric/functions/validate.function.d.ts +2 -2
- package/dist/src/functions/commands/all.d.ts +1 -1
- package/dist/src/functions/commands/audit.d.ts +1 -1
- package/dist/src/functions/commands/binary.d.ts +2 -2
- package/dist/src/functions/commands/bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/db-audit.d.ts +1 -1
- package/dist/src/functions/commands/db-generate.d.ts +1 -1
- package/dist/src/functions/commands/db-migrate.d.ts +1 -1
- package/dist/src/functions/commands/db-reset.d.ts +1 -1
- package/dist/src/functions/commands/db-seed.d.ts +1 -1
- package/dist/src/functions/commands/deploy-apply.d.ts +2 -2
- package/dist/src/functions/commands/deploy-info.d.ts +1 -1
- package/dist/src/functions/commands/deploy-plan.d.ts +2 -2
- package/dist/src/functions/commands/dev.d.ts +2 -2
- package/dist/src/functions/commands/emails-init.d.ts +1 -1
- package/dist/src/functions/commands/enable.d.ts +8 -8
- package/dist/src/functions/commands/import-n8n.d.ts +2 -2
- package/dist/src/functions/commands/info.d.ts +4 -4
- package/dist/src/functions/commands/login.d.ts +5 -5
- package/dist/src/functions/commands/meta.d.ts +25 -25
- package/dist/src/functions/commands/new-addon.d.ts +13 -2
- package/dist/src/functions/commands/new-addon.js +38 -4
- package/dist/src/functions/commands/new-function.d.ts +2 -2
- package/dist/src/functions/commands/new-middleware.d.ts +2 -2
- package/dist/src/functions/commands/new-permission.d.ts +2 -2
- package/dist/src/functions/commands/new-wiring.d.ts +2 -2
- package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -1
- package/dist/src/functions/commands/scenario.d.ts +3 -3
- package/dist/src/functions/commands/scopes-audit.d.ts +1 -1
- package/dist/src/functions/commands/scopes-prune.d.ts +2 -2
- package/dist/src/functions/commands/serve.d.ts +2 -2
- package/dist/src/functions/commands/skills.d.ts +4 -4
- package/dist/src/functions/commands/versions-check.d.ts +1 -1
- package/dist/src/functions/commands/versions-init.d.ts +2 -2
- package/dist/src/functions/commands/versions-update.d.ts +1 -1
- package/dist/src/functions/commands/watch.d.ts +2 -2
- package/dist/src/functions/commands/workspace-validate.d.ts +2 -2
- package/dist/src/functions/runtimes/fetch/index.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
- package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.d.ts +1 -1
- package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +3 -2
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +3 -2
- package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +55 -16
- package/dist/src/functions/wirings/auth/pikku-command-auth.d.ts +2 -2
- package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
- package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -1
- package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -1
- package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -1
- package/dist/src/functions/wirings/credentials/pikku-command-credentials.d.ts +1 -1
- package/dist/src/functions/wirings/emails/pikku-command-emails.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-services.js +9 -2
- package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +23 -12
- package/dist/src/functions/wirings/gateway/pikku-command-gateway.d.ts +1 -1
- package/dist/src/functions/wirings/graph/pikku-command-graph-wirings.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
- package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +3 -3
- package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
- package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.d.ts +1 -1
- package/dist/src/functions/wirings/realtime/pikku-command-realtime.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-react-query.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +3 -3
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/scenarios/pikku-command-scenario-functions.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
- package/dist/src/functions/wirings/scopes/pikku-command-scopes.d.ts +2 -2
- package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -1
- package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +2 -2
- package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -1
- package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -1
- package/dist/src/functions/wirings/webhook/pikku-command-webhook.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +2 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +8 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/skills/pikku-ai-agent/SKILL.md +3 -3
- package/skills/pikku-services/SKILL.md +34 -0
- package/console-app/assets/index-CpHRlBt-.css +0 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.d.ts +0 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +0 -6
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +0 -26
- package/dist/.pikku/http/pikku-http-wirings.gen.js +0 -5
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.d.ts +0 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +0 -6
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -10
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +0 -4
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +0 -5
- package/dist/.pikku/schemas/schemas/RemoteRPCHandlerInput.schema.json +0 -1
- package/dist/src/scaffold/rpc-remote.gen.d.ts +0 -10
- package/dist/src/scaffold/rpc-remote.gen.js +0 -27
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pick the protocol the generated test app uses to depend on its parent addon.
|
|
3
|
+
*
|
|
4
|
+
* Inside a workspace this must be `workspace:*`. The `file:` protocol copies
|
|
5
|
+
* the whole parent directory rather than honouring its `files` field, so the
|
|
6
|
+
* copy includes the parent's own test/node_modules — which already holds a
|
|
7
|
+
* copy. Every install then adds another layer until the path exceeds the OS
|
|
8
|
+
* limit. Outside a workspace `workspace:*` cannot resolve, so `file:` remains
|
|
9
|
+
* the only option there.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveAddonDepProtocol(baseDir: string): string;
|
|
1
12
|
export declare const pikkuNewAddon: import("#pikku").PikkuFunctionConfig<{
|
|
2
13
|
name: string;
|
|
3
14
|
displayName?: string;
|
|
@@ -28,7 +39,7 @@ export declare const pikkuNewAddon: import("#pikku").PikkuFunctionConfig<{
|
|
|
28
39
|
authConfig?: string;
|
|
29
40
|
mcp?: boolean;
|
|
30
41
|
camelCase?: boolean;
|
|
31
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
42
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
32
43
|
name: string;
|
|
33
44
|
displayName?: string;
|
|
34
45
|
description?: string;
|
|
@@ -43,4 +54,4 @@ export declare const pikkuNewAddon: import("#pikku").PikkuFunctionConfig<{
|
|
|
43
54
|
authConfig?: string;
|
|
44
55
|
mcp?: boolean;
|
|
45
56
|
camelCase?: boolean;
|
|
46
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
57
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,9 +1,42 @@
|
|
|
1
|
-
import { existsSync } from 'fs';
|
|
2
|
-
import { join } from 'path';
|
|
1
|
+
import { existsSync, readFileSync } from 'fs';
|
|
2
|
+
import { dirname, join } from 'path';
|
|
3
3
|
import { mkdir, writeFile } from 'fs/promises';
|
|
4
4
|
import { createEmptyManifest, saveManifest, } from '../../utils/contract-versions.js';
|
|
5
5
|
import { pikkuSessionlessFunc } from '#pikku';
|
|
6
6
|
import { parseOpenAPISpec, computeContractHash, generateAddonFromOpenAPI, loadAuthConfig, } from '@pikku/openapi-parser';
|
|
7
|
+
/**
|
|
8
|
+
* Pick the protocol the generated test app uses to depend on its parent addon.
|
|
9
|
+
*
|
|
10
|
+
* Inside a workspace this must be `workspace:*`. The `file:` protocol copies
|
|
11
|
+
* the whole parent directory rather than honouring its `files` field, so the
|
|
12
|
+
* copy includes the parent's own test/node_modules — which already holds a
|
|
13
|
+
* copy. Every install then adds another layer until the path exceeds the OS
|
|
14
|
+
* limit. Outside a workspace `workspace:*` cannot resolve, so `file:` remains
|
|
15
|
+
* the only option there.
|
|
16
|
+
*/
|
|
17
|
+
export function resolveAddonDepProtocol(baseDir) {
|
|
18
|
+
let dir = baseDir;
|
|
19
|
+
while (true) {
|
|
20
|
+
const manifest = join(dir, 'package.json');
|
|
21
|
+
if (existsSync(manifest)) {
|
|
22
|
+
try {
|
|
23
|
+
const { workspaces } = JSON.parse(readFileSync(manifest, 'utf8'));
|
|
24
|
+
if (Array.isArray(workspaces) || Array.isArray(workspaces?.packages)) {
|
|
25
|
+
return 'workspace:*';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// A malformed manifest tells us nothing about the workspace layout;
|
|
30
|
+
// keep walking up rather than failing the scaffold.
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const parent = dirname(dir);
|
|
34
|
+
if (parent === dir) {
|
|
35
|
+
return 'file:..';
|
|
36
|
+
}
|
|
37
|
+
dir = parent;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
7
40
|
function toCamelCase(str) {
|
|
8
41
|
return str.replace(/-([a-z0-9])/g, (_, c) => c.toUpperCase());
|
|
9
42
|
}
|
|
@@ -626,7 +659,7 @@ wireVariable({
|
|
|
626
659
|
return files;
|
|
627
660
|
}
|
|
628
661
|
function getTestFiles(vars) {
|
|
629
|
-
const { name, camelName, pascalName, screamingName } = vars;
|
|
662
|
+
const { name, camelName, pascalName, screamingName, addonDepProtocol } = vars;
|
|
630
663
|
const files = {};
|
|
631
664
|
// test/package.json
|
|
632
665
|
files['package.json'] = JSON.stringify({
|
|
@@ -643,7 +676,7 @@ function getTestFiles(vars) {
|
|
|
643
676
|
},
|
|
644
677
|
dependencies: {
|
|
645
678
|
'@pikku/core': '*',
|
|
646
|
-
[`@pikku/addon-${name}`]:
|
|
679
|
+
[`@pikku/addon-${name}`]: addonDepProtocol,
|
|
647
680
|
},
|
|
648
681
|
devDependencies: {
|
|
649
682
|
'@pikku/cli': '*',
|
|
@@ -822,6 +855,7 @@ export const pikkuNewAddon = pikkuSessionlessFunc({
|
|
|
822
855
|
displayName: resolvedDisplayName,
|
|
823
856
|
description: resolvedDescription,
|
|
824
857
|
category,
|
|
858
|
+
addonDepProtocol: resolveAddonDepProtocol(baseDir),
|
|
825
859
|
};
|
|
826
860
|
// Load the auth config (custom auth header / delegated login overrides)
|
|
827
861
|
let loadedAuthConfig;
|
|
@@ -4,7 +4,7 @@ export declare const pikkuNewFunction: import("#pikku").PikkuFunctionConfig<{
|
|
|
4
4
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
5
5
|
name: string;
|
|
6
6
|
type?: string;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
8
8
|
name: string;
|
|
9
9
|
type?: string;
|
|
10
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
10
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -4,7 +4,7 @@ export declare const pikkuNewMiddleware: import("#pikku").PikkuFunctionConfig<{
|
|
|
4
4
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
5
5
|
name: string;
|
|
6
6
|
type?: string;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
8
8
|
name: string;
|
|
9
9
|
type?: string;
|
|
10
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
10
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -4,7 +4,7 @@ export declare const pikkuNewPermission: import("#pikku").PikkuFunctionConfig<{
|
|
|
4
4
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
5
5
|
name: string;
|
|
6
6
|
type?: string;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
8
8
|
name: string;
|
|
9
9
|
type?: string;
|
|
10
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
10
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -4,7 +4,7 @@ export declare const pikkuNewWiring: import("#pikku").PikkuFunctionConfig<{
|
|
|
4
4
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
5
5
|
name: string;
|
|
6
6
|
type?: string;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
8
8
|
name: string;
|
|
9
9
|
type?: string;
|
|
10
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
10
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export type BootstrapInput = {
|
|
2
2
|
allImports: string[];
|
|
3
3
|
};
|
|
4
|
-
export declare const pikkuBootstrap: import("#pikku").PikkuFunctionConfig<BootstrapInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<BootstrapInput, void, "rpc" | "session", import("#pikku").
|
|
4
|
+
export declare const pikkuBootstrap: import("#pikku").PikkuFunctionConfig<BootstrapInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<BootstrapInput, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<BootstrapInput, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuSummary: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuSummary: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const scenarioList: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const scenarioList: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
2
2
|
export declare const scenarioRun: import("#pikku").PikkuFunctionConfig<{
|
|
3
3
|
environment: string;
|
|
4
4
|
flows?: string;
|
|
@@ -9,9 +9,9 @@ export declare const scenarioRun: import("#pikku").PikkuFunctionConfig<{
|
|
|
9
9
|
flows?: string;
|
|
10
10
|
tags?: string;
|
|
11
11
|
coverage?: boolean;
|
|
12
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
12
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
13
13
|
environment: string;
|
|
14
14
|
flows?: string;
|
|
15
15
|
tags?: string;
|
|
16
16
|
coverage?: boolean;
|
|
17
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
17
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const scopesAudit: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const scopesAudit: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -9,6 +9,6 @@ export declare const scopesPrune: import("#pikku").PikkuFunctionConfig<{
|
|
|
9
9
|
yes?: boolean;
|
|
10
10
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
11
11
|
yes?: boolean;
|
|
12
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
12
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
13
13
|
yes?: boolean;
|
|
14
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
14
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -4,7 +4,7 @@ export declare const serve: import("#pikku").PikkuFunctionConfig<{
|
|
|
4
4
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
5
5
|
port?: string;
|
|
6
6
|
console?: boolean;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
8
8
|
port?: string;
|
|
9
9
|
console?: boolean;
|
|
10
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
10
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -2,9 +2,9 @@ export declare const pikkuSkillsList: import("#pikku").PikkuFunctionConfig<{
|
|
|
2
2
|
target?: string;
|
|
3
3
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
4
4
|
target?: string;
|
|
5
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
5
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
6
6
|
target?: string;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
8
8
|
export declare const pikkuSkillsInstall: import("#pikku").PikkuFunctionConfig<{
|
|
9
9
|
agent?: string;
|
|
10
10
|
only?: string;
|
|
@@ -17,10 +17,10 @@ export declare const pikkuSkillsInstall: import("#pikku").PikkuFunctionConfig<{
|
|
|
17
17
|
core?: boolean;
|
|
18
18
|
fabric?: boolean;
|
|
19
19
|
update?: boolean;
|
|
20
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
20
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
21
21
|
agent?: string;
|
|
22
22
|
only?: string;
|
|
23
23
|
core?: boolean;
|
|
24
24
|
fabric?: boolean;
|
|
25
25
|
update?: boolean;
|
|
26
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
26
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuVersionsCheck: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuVersionsCheck: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -2,6 +2,6 @@ export declare const pikkuVersionsInit: import("#pikku").PikkuFunctionConfig<{
|
|
|
2
2
|
force?: boolean;
|
|
3
3
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
4
4
|
force?: boolean;
|
|
5
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
5
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
6
6
|
force?: boolean;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuVersionsUpdate: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuVersionsUpdate: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -2,6 +2,6 @@ export declare const watch: import("#pikku").PikkuFunctionConfig<{
|
|
|
2
2
|
hmr?: boolean;
|
|
3
3
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
4
4
|
hmr?: boolean;
|
|
5
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
5
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
6
6
|
hmr?: boolean;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -19,7 +19,7 @@ export declare const workspaceValidate: import("#pikku").PikkuFunctionConfig<Rec
|
|
|
19
19
|
path: string;
|
|
20
20
|
fixHint: string;
|
|
21
21
|
}[];
|
|
22
|
-
}, "rpc" | "session", import("#pikku").
|
|
22
|
+
}, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<Record<string, never>, {
|
|
23
23
|
ok: boolean;
|
|
24
24
|
root: string;
|
|
25
25
|
findings: {
|
|
@@ -29,5 +29,5 @@ export declare const workspaceValidate: import("#pikku").PikkuFunctionConfig<Rec
|
|
|
29
29
|
path: string;
|
|
30
30
|
fixHint: string;
|
|
31
31
|
}[];
|
|
32
|
-
}, "rpc" | "session", import("#pikku").
|
|
32
|
+
}, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
33
33
|
export { renderWorkspaceValidate };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuFetch: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuFetch: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuNext: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuNext: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuTanStackStart: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuTanStackStart: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuWebSocketTyped: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuWebSocketTyped: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuAIAgentTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuAIAgentTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -5,10 +5,11 @@ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-
|
|
|
5
5
|
import { serializeAIAgentTypes } from './serialize-ai-agent-types.js';
|
|
6
6
|
export const pikkuAIAgentTypes = pikkuSessionlessFunc({
|
|
7
7
|
func: async ({ logger, config }) => {
|
|
8
|
-
const { agentTypesFile, functionTypesFile, agentMapDeclarationFile, packageMappings, } = config;
|
|
8
|
+
const { agentTypesFile, functionTypesFile, agentMapDeclarationFile, scopesFile, packageMappings, } = config;
|
|
9
9
|
const functionTypesImportPath = getFileImportRelativePath(agentTypesFile, functionTypesFile, packageMappings);
|
|
10
10
|
const agentMapImportPath = getFileImportRelativePath(agentTypesFile, agentMapDeclarationFile, packageMappings);
|
|
11
|
-
const
|
|
11
|
+
const scopesImportPath = getFileImportRelativePath(agentTypesFile, scopesFile, packageMappings);
|
|
12
|
+
const content = serializeAIAgentTypes(functionTypesImportPath, agentMapImportPath, scopesImportPath);
|
|
12
13
|
await writeFileInDir(logger, agentTypesFile, content);
|
|
13
14
|
},
|
|
14
15
|
middleware: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuAIAgent: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuAIAgent: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuPublicAgent: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuPublicAgent: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const serializeAIAgentTypes: (functionTypesImportPath: string, agentMapImportPath: string) => string;
|
|
1
|
+
export declare const serializeAIAgentTypes: (functionTypesImportPath: string, agentMapImportPath: string, scopesImportPath: string) => string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const serializeAIAgentTypes = (functionTypesImportPath, agentMapImportPath) => {
|
|
1
|
+
export const serializeAIAgentTypes = (functionTypesImportPath, agentMapImportPath, scopesImportPath) => {
|
|
2
2
|
return `import {
|
|
3
3
|
CoreAIAgent,
|
|
4
4
|
PikkuAIMiddlewareHooks,
|
|
@@ -13,11 +13,12 @@ import type { PikkuPermission, PikkuMiddleware, Services, PikkuFunctionConfig }
|
|
|
13
13
|
import type { StandardSchemaV1 } from '@standard-schema/spec'
|
|
14
14
|
import type { AIAgentMemoryConfig, AIAgentInput } from '@pikku/core/ai-agent'
|
|
15
15
|
import type { AgentMap } from '${agentMapImportPath}'
|
|
16
|
+
import type { ScopeId } from '${scopesImportPath}'
|
|
16
17
|
|
|
17
18
|
type AIAgentConfig<
|
|
18
19
|
InputSchema extends StandardSchemaV1 | undefined = undefined,
|
|
19
20
|
OutputSchema extends StandardSchemaV1 | undefined = undefined
|
|
20
|
-
> = Omit<CoreAIAgent<PikkuPermission, PikkuMiddleware>, 'tools' | 'agents' | 'workflows' | 'memory' | 'input' | 'output'> & {
|
|
21
|
+
> = Omit<CoreAIAgent<PikkuPermission, PikkuMiddleware, ScopeId>, 'tools' | 'agents' | 'workflows' | 'memory' | 'input' | 'output'> & {
|
|
21
22
|
input?: InputSchema
|
|
22
23
|
output?: OutputSchema
|
|
23
24
|
memory?: Omit<AIAgentMemoryConfig, 'workingMemory'> & { workingMemory?: StandardSchemaV1 }
|
|
@@ -1,12 +1,45 @@
|
|
|
1
1
|
export const serializePublicAgent = (pathToPikkuTypes, requireAuth = true, globalHTTPPrefix = '') => {
|
|
2
2
|
const authFlag = requireAuth ? 'true' : 'false';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
// Emitted inline at each call site rather than as a shared named alias: the
|
|
4
|
+
// schema extractor only reads type literals in the generic position, and
|
|
5
|
+
// synthesises the schema name from the function name. Behind a named alias it
|
|
6
|
+
// records an `inputSchemaName` with no schema behind it, and every agent call
|
|
7
|
+
// then fails at runtime with MissingSchemaError.
|
|
8
|
+
const callerInput = `{
|
|
9
|
+
agentName: string
|
|
10
|
+
message: string
|
|
11
|
+
threadId: string
|
|
12
|
+
resourceId: string
|
|
13
|
+
attachments?: {
|
|
14
|
+
type: 'image' | 'file'
|
|
15
|
+
data?: string
|
|
16
|
+
url?: string
|
|
17
|
+
mediaType?: string
|
|
18
|
+
filename?: string
|
|
19
|
+
}[]
|
|
20
|
+
model?: string
|
|
21
|
+
temperature?: number
|
|
22
|
+
context?: string
|
|
23
|
+
}`;
|
|
24
|
+
return `import { canAccessThread, threadOwnerConstraint } from '@pikku/core/ai-agent'
|
|
25
|
+
import { pikkuSessionlessFunc, pikkuPermission, defineHTTPRoutes, wireHTTPRoutes } from '${pathToPikkuTypes}'
|
|
5
26
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Thread reads are keyed by a caller-supplied \`threadId\`, so ownership cannot
|
|
29
|
+
* come from the request — it is derived from the session and checked against
|
|
30
|
+
* the stored thread's resourceId.
|
|
31
|
+
*/
|
|
32
|
+
export const isThreadOwner = pikkuPermission<{ threadId: string }>(
|
|
33
|
+
async ({ agentRunService }, { threadId }, { session }) => {
|
|
34
|
+
const thread = await agentRunService.getThread(threadId)
|
|
35
|
+
// A missing thread is denied rather than 404'd so it is indistinguishable
|
|
36
|
+
// from one owned by someone else — no existence oracle.
|
|
37
|
+
if (!thread) return false
|
|
38
|
+
return canAccessThread(thread.resourceId, session)
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
export const agentCaller = pikkuSessionlessFunc<${callerInput}, unknown>({
|
|
10
43
|
tags: ['pikku'],
|
|
11
44
|
auth: ${authFlag},
|
|
12
45
|
func: async (_services, data, { rpc }) => {
|
|
@@ -14,14 +47,15 @@ export const agentCaller = pikkuSessionlessFunc<
|
|
|
14
47
|
message: data.message,
|
|
15
48
|
threadId: data.threadId,
|
|
16
49
|
resourceId: data.resourceId,
|
|
50
|
+
...(data.attachments ? { attachments: data.attachments } : {}),
|
|
51
|
+
...(data.model ? { model: data.model } : {}),
|
|
52
|
+
...(data.temperature !== undefined ? { temperature: data.temperature } : {}),
|
|
53
|
+
...(data.context ? { context: data.context } : {}),
|
|
17
54
|
})
|
|
18
55
|
},
|
|
19
56
|
})
|
|
20
57
|
|
|
21
|
-
export const agentStreamCaller = pikkuSessionlessFunc
|
|
22
|
-
{ agentName: string; message: string; threadId: string; resourceId: string; context?: string },
|
|
23
|
-
void
|
|
24
|
-
>({
|
|
58
|
+
export const agentStreamCaller = pikkuSessionlessFunc<${callerInput}, void>({
|
|
25
59
|
tags: ['pikku'],
|
|
26
60
|
auth: ${authFlag},
|
|
27
61
|
func: async (_services, data, { rpc }) => {
|
|
@@ -29,6 +63,9 @@ export const agentStreamCaller = pikkuSessionlessFunc<
|
|
|
29
63
|
message: data.message,
|
|
30
64
|
threadId: data.threadId,
|
|
31
65
|
resourceId: data.resourceId,
|
|
66
|
+
...(data.attachments ? { attachments: data.attachments } : {}),
|
|
67
|
+
...(data.model ? { model: data.model } : {}),
|
|
68
|
+
...(data.temperature !== undefined ? { temperature: data.temperature } : {}),
|
|
32
69
|
...(data.context ? { context: data.context } : {}),
|
|
33
70
|
})
|
|
34
71
|
},
|
|
@@ -66,14 +103,16 @@ export const getAgentThreads = pikkuSessionlessFunc<
|
|
|
66
103
|
tags: ['pikku', 'pikku:agent'],
|
|
67
104
|
title: 'Get Agent Threads',
|
|
68
105
|
description:
|
|
69
|
-
'Returns
|
|
106
|
+
'Returns the caller\\'s AI agent threads from storage. Accepts optional filters: agentName, resourceId, limit, and offset for pagination.',
|
|
70
107
|
expose: true,
|
|
71
108
|
auth: ${authFlag},
|
|
72
|
-
func: async ({ agentRunService }, input) => {
|
|
73
|
-
|
|
109
|
+
func: async ({ agentRunService }, input, { session }) => {
|
|
110
|
+
// \`owners\` is an authorization constraint derived from the session, never
|
|
111
|
+
// from input — \`resourceId\` remains a caller-supplied filter within it.
|
|
74
112
|
return await agentRunService.listThreads({
|
|
75
113
|
agentName: input?.agentName,
|
|
76
114
|
resourceId: input?.resourceId,
|
|
115
|
+
owners: threadOwnerConstraint(session),
|
|
77
116
|
limit: input?.limit,
|
|
78
117
|
offset: input?.offset,
|
|
79
118
|
})
|
|
@@ -90,8 +129,8 @@ export const getAgentThreadMessages = pikkuSessionlessFunc<
|
|
|
90
129
|
'Returns all messages for a given AI agent thread, ordered by creation time.',
|
|
91
130
|
expose: true,
|
|
92
131
|
auth: ${authFlag},
|
|
132
|
+
permissions: { owner: isThreadOwner },
|
|
93
133
|
func: async ({ agentRunService }, input) => {
|
|
94
|
-
if (!agentRunService) throw new MissingServiceError('agentRunService is not available')
|
|
95
134
|
return await agentRunService.getThreadMessages(input.threadId)
|
|
96
135
|
},
|
|
97
136
|
})
|
|
@@ -106,8 +145,8 @@ export const getAgentThreadRuns = pikkuSessionlessFunc<
|
|
|
106
145
|
'Returns the run history for a given AI agent thread, ordered by creation time.',
|
|
107
146
|
expose: true,
|
|
108
147
|
auth: ${authFlag},
|
|
148
|
+
permissions: { owner: isThreadOwner },
|
|
109
149
|
func: async ({ agentRunService }, input) => {
|
|
110
|
-
if (!agentRunService) throw new MissingServiceError('agentRunService is not available')
|
|
111
150
|
return await agentRunService.getThreadRuns(input.threadId)
|
|
112
151
|
},
|
|
113
152
|
})
|
|
@@ -122,8 +161,8 @@ export const deleteAgentThread = pikkuSessionlessFunc<
|
|
|
122
161
|
'Deletes an AI agent thread and all of its persisted state.',
|
|
123
162
|
expose: true,
|
|
124
163
|
auth: ${authFlag},
|
|
164
|
+
permissions: { owner: isThreadOwner },
|
|
125
165
|
func: async ({ agentRunService }, input) => {
|
|
126
|
-
if (!agentRunService) throw new MissingServiceError('agentRunService is not available')
|
|
127
166
|
const deleted = await agentRunService.deleteThread(input.threadId)
|
|
128
167
|
return { deleted }
|
|
129
168
|
},
|
|
@@ -2,6 +2,6 @@ export declare const pikkuAuth: import("#pikku").PikkuFunctionConfig<{
|
|
|
2
2
|
bootstrap?: boolean;
|
|
3
3
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
4
4
|
bootstrap?: boolean;
|
|
5
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
5
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
6
6
|
bootstrap?: boolean;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuChannels: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuChannels: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuChannelTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuChannelTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuChannelsMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuChannelsMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuCommandChannels: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuCommandChannels: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuCLIEntry: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuCLIEntry: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type CLITypesCommandInput = {
|
|
2
2
|
bootstrap?: boolean;
|
|
3
3
|
};
|
|
4
|
-
export declare const pikkuCLITypes: import("#pikku").PikkuFunctionConfig<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").
|
|
4
|
+
export declare const pikkuCLITypes: import("#pikku").PikkuFunctionConfig<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
5
5
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuCLI: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuCLI: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuConsoleFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuConsoleFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuNodeTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuNodeTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuNodesMeta: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuNodesMeta: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuCredentials: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuCredentials: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PikkuCLIConfig } from '../../../../types/config.js';
|
|
2
2
|
import type { CLILogger } from '../../../services/cli-logger.service.js';
|
|
3
|
-
export declare const pikkuEmails: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
3
|
+
export declare const pikkuEmails: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
4
4
|
export declare function generateEmailsArtifacts(logger: CLILogger, config: Pick<PikkuCLIConfig, 'outDir'> & {
|
|
5
5
|
emailTemplatesDir?: string;
|
|
6
6
|
}): Promise<true | undefined>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type AddonTypesCommandInput = {
|
|
2
2
|
bootstrap?: boolean;
|
|
3
3
|
};
|
|
4
|
-
export declare const pikkuAddonTypes: import("#pikku").PikkuFunctionConfig<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").
|
|
4
|
+
export declare const pikkuAddonTypes: import("#pikku").PikkuFunctionConfig<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
5
5
|
export {};
|
|
@@ -2,6 +2,6 @@ export declare const pikkuFunctionTypesSplit: import("#pikku").PikkuFunctionConf
|
|
|
2
2
|
bootstrap?: boolean;
|
|
3
3
|
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
4
4
|
bootstrap?: boolean;
|
|
5
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
5
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
|
|
6
6
|
bootstrap?: boolean;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|