@pikku/addon-console 0.12.32 → 0.12.34
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/LICENSE +21 -0
- package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
- package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
- package/dist/.pikku/addon/pikku-package.gen.js +1 -1
- package/dist/.pikku/agent/pikku-agent-map.gen.d.ts +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
- package/dist/.pikku/auth/auth.types.d.ts +1 -1
- package/dist/.pikku/auth/auth.types.js +1 -1
- 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/console/pikku-node-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
- 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 +38 -41
- package/dist/.pikku/function/pikku-functions.gen.js +3 -3
- package/dist/.pikku/function/pikku-functions.gen.js.map +1 -1
- 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-scenarios.gen.d.ts +2 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts.map +1 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +2 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.js.map +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
- 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 +4 -3
- package/dist/.pikku/pikku-services.gen.d.ts.map +1 -1
- package/dist/.pikku/pikku-services.gen.js +2 -1
- package/dist/.pikku/pikku-services.gen.js.map +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-map.gen.d.ts +3 -4
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +3 -4
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts +1 -3
- 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 -1
- package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/schemas/register.gen.d.ts +5 -0
- package/dist/.pikku/scenarios/schemas/register.gen.d.ts.map +1 -0
- package/dist/.pikku/scenarios/schemas/register.gen.js +5 -0
- package/dist/.pikku/scenarios/schemas/register.gen.js.map +1 -0
- 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 +3 -5
- package/dist/.pikku/schemas/register.gen.js.map +1 -1
- package/dist/.pikku/schemas/schemas/AddonMetaPage.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/AddonPackageInfo.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/AllMeta.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/DbSchema.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/GetFunctionsMetaOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/KnowledgeBundle.schema.json +1 -0
- 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/pikku-scenario-actors.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-scenario-actors.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-scenario-step-map.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-map.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
- 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.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/src/functions/get-knowledge.function.d.ts +3 -0
- package/dist/src/functions/get-knowledge.function.d.ts.map +1 -0
- package/dist/src/functions/get-knowledge.function.js +14 -0
- package/dist/src/functions/get-knowledge.function.js.map +1 -0
- package/dist/src/functions/get-knowledge.function.test.d.ts +2 -0
- package/dist/src/functions/get-knowledge.function.test.d.ts.map +1 -0
- package/dist/src/functions/get-knowledge.function.test.js +24 -0
- package/dist/src/functions/get-knowledge.function.test.js.map +1 -0
- package/dist/src/functions/get-workflow-meta-by-id.function.d.ts.map +1 -1
- package/dist/src/functions/get-workflow-meta-by-id.function.js +3 -21
- package/dist/src/functions/get-workflow-meta-by-id.function.js.map +1 -1
- package/dist/src/services/db-schema.service.d.ts +11 -0
- package/dist/src/services/db-schema.service.d.ts.map +1 -1
- package/dist/src/services/db-schema.service.js +6 -1
- package/dist/src/services/db-schema.service.js.map +1 -1
- package/dist/src/services/knowledge.service.d.ts +21 -0
- package/dist/src/services/knowledge.service.d.ts.map +1 -0
- package/dist/src/services/knowledge.service.js +26 -0
- package/dist/src/services/knowledge.service.js.map +1 -0
- package/dist/src/services/knowledge.service.test.d.ts +2 -0
- package/dist/src/services/knowledge.service.test.d.ts.map +1 -0
- package/dist/src/services/knowledge.service.test.js +59 -0
- package/dist/src/services/knowledge.service.test.js.map +1 -0
- package/dist/src/services.d.ts.map +1 -1
- package/dist/src/services.js +4 -0
- package/dist/src/services.js.map +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { KnowledgeBundle } from '../services/knowledge.service.js';
|
|
2
|
+
export declare const getKnowledge: import("#pikku").PikkuFunctionConfig<null, KnowledgeBundle | null, "rpc" | "session", import("#pikku").PikkuFunction<null, KnowledgeBundle | null, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunctionSessionless<null, KnowledgeBundle | null, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
3
|
+
//# sourceMappingURL=get-knowledge.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-knowledge.function.d.ts","sourceRoot":"","sources":["../../../src/functions/get-knowledge.function.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAEvE,eAAO,MAAM,YAAY,2VAavB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LocalEnvironmentOnlyError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const getKnowledge = pikkuFunc({
|
|
4
|
+
title: 'Get Knowledge Base',
|
|
5
|
+
description: "Reads the project's knowledge/ notes and returns them as a graph — each note with its links in both directions, plus the sections, tag counts, and what `pikku knowledge validate` reports.",
|
|
6
|
+
expose: true,
|
|
7
|
+
func: async ({ knowledgeService }) => {
|
|
8
|
+
if (!knowledgeService) {
|
|
9
|
+
throw new LocalEnvironmentOnlyError('Only available in local development mode');
|
|
10
|
+
}
|
|
11
|
+
return knowledgeService.getBundle();
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=get-knowledge.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-knowledge.function.js","sourceRoot":"","sources":["../../../src/functions/get-knowledge.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAA+B;IAClE,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,6LAA6L;IAC/L,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,yBAAyB,CACjC,0CAA0C,CAC3C,CAAA;QACH,CAAC;QACD,OAAO,gBAAgB,CAAC,SAAS,EAAE,CAAA;IACrC,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-knowledge.function.test.d.ts","sourceRoot":"","sources":["../../../src/functions/get-knowledge.function.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { test } from 'node:test';
|
|
3
|
+
import { LocalEnvironmentOnlyError } from '@pikku/core/errors';
|
|
4
|
+
import { getKnowledge } from './get-knowledge.function.js';
|
|
5
|
+
const BUNDLE = {
|
|
6
|
+
notes: [],
|
|
7
|
+
sections: [],
|
|
8
|
+
tagCounts: {},
|
|
9
|
+
stats: { notes: 0, sections: 0, links: 0, dangling: 0 },
|
|
10
|
+
findings: [],
|
|
11
|
+
ok: true,
|
|
12
|
+
};
|
|
13
|
+
test('getKnowledge hands back whatever the service read off disk', async () => {
|
|
14
|
+
const result = await getKnowledge.func({ knowledgeService: { getBundle: async () => BUNDLE } }, null, {});
|
|
15
|
+
assert.deepEqual(result, BUNDLE);
|
|
16
|
+
});
|
|
17
|
+
test('getKnowledge refuses to answer where there is no project on disk', async () => {
|
|
18
|
+
// The service is only registered when the console runs against a local
|
|
19
|
+
// checkout. Deployed, there is no `knowledge/` to read, and the honest answer
|
|
20
|
+
// is the error that says so rather than an empty base that looks like a
|
|
21
|
+
// project nobody has written anything about.
|
|
22
|
+
await assert.rejects(() => getKnowledge.func({}, null, {}), LocalEnvironmentOnlyError);
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=get-knowledge.function.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-knowledge.function.test.js","sourceRoot":"","sources":["../../../src/functions/get-knowledge.function.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;IACvD,QAAQ,EAAE,EAAE;IACZ,EAAE,EAAE,IAAI;CACU,CAAA;AAEpB,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;IAC5E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CACpC,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAW,EAChE,IAAa,EACb,EAAW,CACZ,CAAA;IACD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;IAClF,uEAAuE;IACvE,8EAA8E;IAC9E,wEAAwE;IACxE,6CAA6C;IAC7C,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAW,EAAE,IAAa,EAAE,EAAW,CAAC,EAChE,yBAAyB,CAC1B,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-workflow-meta-by-id.function.d.ts","sourceRoot":"","sources":["../../../src/functions/get-workflow-meta-by-id.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB;gBAChB,MAAM;;;;;;;;;;;gBAAN,MAAM;;;;;;;;;;;gBAAN,MAAM;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"get-workflow-meta-by-id.function.d.ts","sourceRoot":"","sources":["../../../src/functions/get-workflow-meta-by-id.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB;gBAChB,MAAM;;;;;;;;;;;gBAAN,MAAM;;;;;;;;;;;gBAAN,MAAM;;;;;;;;;;oFAWpB,CAAA"}
|
|
@@ -1,29 +1,11 @@
|
|
|
1
1
|
import { pikkuFunc } from '#pikku';
|
|
2
2
|
export const getWorkflowMetaById = pikkuFunc({
|
|
3
3
|
title: 'Get Workflow by ID',
|
|
4
|
-
description: 'Given a workflowId string, reads all workflow metadata from wiringService and returns the matching workflow meta object.
|
|
4
|
+
description: 'Given a workflowId string, reads all workflow metadata from wiringService and returns the matching workflow meta object. Returns null if no workflow matches the given ID.',
|
|
5
5
|
expose: true,
|
|
6
|
-
func: async ({ metaService
|
|
6
|
+
func: async ({ metaService }, input) => {
|
|
7
7
|
const workflowsMeta = await metaService.getWorkflowMeta();
|
|
8
|
-
|
|
9
|
-
if (workflow)
|
|
10
|
-
return workflow;
|
|
11
|
-
if (workflowService) {
|
|
12
|
-
const aiWorkflows = await workflowService.getAIGeneratedWorkflows();
|
|
13
|
-
const match = aiWorkflows.find((w) => w.workflowName === input.workflowId);
|
|
14
|
-
if (match) {
|
|
15
|
-
return {
|
|
16
|
-
name: match.workflowName,
|
|
17
|
-
pikkuFuncId: match.workflowName,
|
|
18
|
-
steps: [],
|
|
19
|
-
source: 'ai-agent',
|
|
20
|
-
nodes: match.graph?.nodes,
|
|
21
|
-
entryNodeIds: match.graph?.entryNodeIds,
|
|
22
|
-
graphHash: match.graphHash,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
8
|
+
return workflowsMeta[input.workflowId] ?? null;
|
|
27
9
|
},
|
|
28
10
|
});
|
|
29
11
|
//# sourceMappingURL=get-workflow-meta-by-id.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-workflow-meta-by-id.function.js","sourceRoot":"","sources":["../../../src/functions/get-workflow-meta-by-id.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAG1C;IACA,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"get-workflow-meta-by-id.function.js","sourceRoot":"","sources":["../../../src/functions/get-workflow-meta-by-id.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAG1C;IACA,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,4KAA4K;IAC9K,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAA;QACzD,OAAO,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAA;IAChD,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -16,6 +16,17 @@ export interface DbColumn {
|
|
|
16
16
|
export interface DbTable {
|
|
17
17
|
name: string;
|
|
18
18
|
columns: DbColumn[];
|
|
19
|
+
/**
|
|
20
|
+
* Who declared this table: `app` for the project's own migrations, otherwise
|
|
21
|
+
* the source label `pikku db generate` gave the migration that created it
|
|
22
|
+
* (`better-auth`, `pikku-runtime`, an addon's package name).
|
|
23
|
+
*
|
|
24
|
+
* Absent when the schema JSON predates provenance — a consumer that needs to
|
|
25
|
+
* tell framework tables apart has to fall back rather than assume `app`.
|
|
26
|
+
*/
|
|
27
|
+
source?: string;
|
|
28
|
+
/** Human prose naming where the table's SQL came from, for a tooltip. */
|
|
29
|
+
origin?: string;
|
|
19
30
|
}
|
|
20
31
|
export interface DbEnum {
|
|
21
32
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-schema.service.d.ts","sourceRoot":"","sources":["../../../src/services/db-schema.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEpE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,QAAQ,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"db-schema.service.d.ts","sourceRoot":"","sources":["../../../src/services/db-schema.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEpE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,QAAQ,EAAE,CAAA;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAwED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE/C,SAAS,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAgC5C"}
|
|
@@ -42,7 +42,7 @@ export class DbSchemaService {
|
|
|
42
42
|
const annotations = await loadAnnotations(this.metaService);
|
|
43
43
|
const tables = parsed.tables.map((t) => {
|
|
44
44
|
const tableAnns = annotations[bareTableName(t.name)] ?? {};
|
|
45
|
-
|
|
45
|
+
const table = {
|
|
46
46
|
name: t.name,
|
|
47
47
|
columns: t.columns.map((c) => {
|
|
48
48
|
const ann = tableAnns[c.name];
|
|
@@ -60,6 +60,11 @@ export class DbSchemaService {
|
|
|
60
60
|
return col;
|
|
61
61
|
}),
|
|
62
62
|
};
|
|
63
|
+
if (t.source)
|
|
64
|
+
table.source = t.source;
|
|
65
|
+
if (t.origin)
|
|
66
|
+
table.origin = t.origin;
|
|
67
|
+
return table;
|
|
63
68
|
});
|
|
64
69
|
return { tables, enums: parsed.enums };
|
|
65
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-schema.service.js","sourceRoot":"","sources":["../../../src/services/db-schema.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"db-schema.service.js","sourceRoot":"","sources":["../../../src/services/db-schema.service.ts"],"names":[],"mappings":"AA0CA,iFAAiF;AAEjF,SAAS,iBAAiB,CAAC,UAA8B;IACvD,IACE,UAAU,KAAK,QAAQ;QACvB,UAAU,KAAK,SAAS;QACxB,UAAU,KAAK,KAAK;QACpB,UAAU,KAAK,QAAQ;QAEvB,OAAO,UAAU,CAAA;IACnB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC7B,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC9C,CAAC;AASD,KAAK,UAAU,eAAe,CAC5B,WAAwB;IAExB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAA;IACjE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAA;IAC/C,MAAM,MAAM,GAAoD,EAAE,CAAA;IAClE,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;QAClD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;QACxC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAwBD,iFAAiF;AAEjF,MAAM,OAAO,eAAe;IAC1B,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEzD,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAA;QAC1E,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAA;QAC3C,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAE3D,MAAM,MAAM,GAAc,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YAC1D,MAAM,KAAK,GAAY;gBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;oBAC7B,MAAM,GAAG,GAAa;wBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,cAAc,EAAE,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC;qBACnD,CAAA;oBACD,IAAI,GAAG,EAAE,WAAW;wBAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAA;oBACvD,IAAI,CAAC,CAAC,UAAU;wBAAE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAA;oBAC/C,OAAO,GAAG,CAAA;gBACZ,CAAC,CAAC;aACH,CAAA;YACD,IAAI,CAAC,CAAC,MAAM;gBAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;YACrC,IAAI,CAAC,CAAC,MAAM;gBAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;YACrC,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type KnowledgeFinding, type KnowledgeGraph } from '@pikku/knowledge';
|
|
2
|
+
export interface KnowledgeBundle extends KnowledgeGraph {
|
|
3
|
+
/** What `pikku knowledge validate` would report, so the console shows the same verdict. */
|
|
4
|
+
findings: KnowledgeFinding[];
|
|
5
|
+
ok: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Reads the project's `knowledge/` notes off disk on every call.
|
|
9
|
+
*
|
|
10
|
+
* There is no cache: the notes are files a developer or an agent edits while the
|
|
11
|
+
* console is open, and a stale graph is worse than a slow one — a reader would be
|
|
12
|
+
* shown a base that no longer exists. Bundles are small enough that a re-read per
|
|
13
|
+
* request is cheaper than any invalidation scheme would be to get right.
|
|
14
|
+
*/
|
|
15
|
+
export declare class KnowledgeService {
|
|
16
|
+
private readonly projectRoot;
|
|
17
|
+
private readonly outDir;
|
|
18
|
+
constructor(projectRoot: string, outDir: string);
|
|
19
|
+
getBundle(): Promise<KnowledgeBundle>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=knowledge.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.service.d.ts","sourceRoot":"","sources":["../../../src/services/knowledge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAIpB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,2FAA2F;IAC3F,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,EAAE,EAAE,OAAO,CAAA;CACZ;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM;IAG3B,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;CAc5C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { buildKnowledgeGraph, readKnowledgeNotes, runKnowledgeValidate, } from '@pikku/knowledge';
|
|
2
|
+
/**
|
|
3
|
+
* Reads the project's `knowledge/` notes off disk on every call.
|
|
4
|
+
*
|
|
5
|
+
* There is no cache: the notes are files a developer or an agent edits while the
|
|
6
|
+
* console is open, and a stale graph is worse than a slow one — a reader would be
|
|
7
|
+
* shown a base that no longer exists. Bundles are small enough that a re-read per
|
|
8
|
+
* request is cheaper than any invalidation scheme would be to get right.
|
|
9
|
+
*/
|
|
10
|
+
export class KnowledgeService {
|
|
11
|
+
constructor(projectRoot, outDir) {
|
|
12
|
+
this.projectRoot = projectRoot;
|
|
13
|
+
this.outDir = outDir;
|
|
14
|
+
}
|
|
15
|
+
async getBundle() {
|
|
16
|
+
// One read, both graphed and validated. Letting validate re-read would let a
|
|
17
|
+
// save land between the two, and the page would then carry findings about a
|
|
18
|
+
// note it is not showing — the one situation where a reader cannot act on
|
|
19
|
+
// what they are being told.
|
|
20
|
+
const notes = await readKnowledgeNotes(this.projectRoot);
|
|
21
|
+
const graph = buildKnowledgeGraph(notes);
|
|
22
|
+
const { ok, findings } = await runKnowledgeValidate(this.projectRoot, this.outDir, notes);
|
|
23
|
+
return { ...graph, ok, findings };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=knowledge.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.service.js","sourceRoot":"","sources":["../../../src/services/knowledge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AAQzB;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YACmB,WAAmB,EACnB,MAAc;QADd,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,SAAS;QACb,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CACjD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,EACX,KAAK,CACN,CAAA;QACD,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.service.test.d.ts","sourceRoot":"","sources":["../../../src/services/knowledge.service.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { mkdtemp, mkdir, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { describe, test } from 'node:test';
|
|
6
|
+
import { KnowledgeService } from './knowledge.service.js';
|
|
7
|
+
const project = async (files) => {
|
|
8
|
+
const root = await mkdtemp(join(tmpdir(), 'pikku-console-knowledge-'));
|
|
9
|
+
for (const [rel, contents] of Object.entries(files)) {
|
|
10
|
+
const full = join(root, rel);
|
|
11
|
+
await mkdir(join(full, '..'), { recursive: true });
|
|
12
|
+
await writeFile(full, contents, 'utf8');
|
|
13
|
+
}
|
|
14
|
+
return root;
|
|
15
|
+
};
|
|
16
|
+
const service = (root) => new KnowledgeService(root, join(root, '.pikku'));
|
|
17
|
+
describe('KnowledgeService', () => {
|
|
18
|
+
test('returns the graph and the same verdict the CLI would give', async () => {
|
|
19
|
+
const root = await project({
|
|
20
|
+
'knowledge/index.md': '---\ntype: overview\ntitle: Knowledge\n---\n[decisions](decisions/index.md)',
|
|
21
|
+
'knowledge/decisions/index.md': '---\ntype: overview\n---\nRules.',
|
|
22
|
+
'knowledge/decisions/why.md': '---\ntype: decision\ntitle: Why\ntags: [access]\n---\nBecause.',
|
|
23
|
+
});
|
|
24
|
+
const bundle = await service(root).getBundle();
|
|
25
|
+
assert.equal(bundle.ok, true);
|
|
26
|
+
assert.deepEqual(bundle.findings, []);
|
|
27
|
+
assert.equal(bundle.stats.notes, 3);
|
|
28
|
+
assert.deepEqual(bundle.sections.map((s) => s.name), ['decisions']);
|
|
29
|
+
assert.deepEqual(bundle.tagCounts, { access: 1 });
|
|
30
|
+
});
|
|
31
|
+
test('reports findings without refusing to return the graph', async () => {
|
|
32
|
+
// The console is a browser, not a gate: a base with problems is exactly when
|
|
33
|
+
// a reader most needs to see it, so the notes come back alongside the verdict.
|
|
34
|
+
const root = await project({
|
|
35
|
+
'knowledge/slices/01-a.md': '# No frontmatter at all\n',
|
|
36
|
+
});
|
|
37
|
+
const bundle = await service(root).getBundle();
|
|
38
|
+
assert.equal(bundle.ok, false);
|
|
39
|
+
assert.ok(bundle.findings.length > 0);
|
|
40
|
+
assert.equal(bundle.notes.length, 1);
|
|
41
|
+
});
|
|
42
|
+
test('a project with no knowledge base returns an empty bundle, not an error', async () => {
|
|
43
|
+
const root = await project({ 'package.json': '{}' });
|
|
44
|
+
const bundle = await service(root).getBundle();
|
|
45
|
+
assert.deepEqual(bundle.notes, []);
|
|
46
|
+
assert.equal(bundle.ok, true);
|
|
47
|
+
});
|
|
48
|
+
test('re-reads the notes on every call, so an edit shows up without a restart', async () => {
|
|
49
|
+
const root = await project({
|
|
50
|
+
'knowledge/index.md': '---\ntype: overview\n---\nx',
|
|
51
|
+
});
|
|
52
|
+
const instance = service(root);
|
|
53
|
+
assert.equal((await instance.getBundle()).stats.notes, 1);
|
|
54
|
+
await mkdir(join(root, 'knowledge', 'questions'), { recursive: true });
|
|
55
|
+
await writeFile(join(root, 'knowledge', 'questions', 'who-owns-a-day.md'), '---\ntype: note\n---\nAsked, not answered.', 'utf8');
|
|
56
|
+
assert.equal((await instance.getBundle()).stats.notes, 2);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=knowledge.service.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.service.test.js","sourceRoot":"","sources":["../../../src/services/knowledge.service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,uBAAuB,0MAiFnC,CAAA"}
|
package/dist/src/services.js
CHANGED
|
@@ -3,6 +3,7 @@ import { WiringService } from './services/wiring.service.js';
|
|
|
3
3
|
import { AddonService } from './services/addon.service.js';
|
|
4
4
|
import { StateDiffService } from './services/state-diff.service.js';
|
|
5
5
|
import { DbSchemaService } from './services/db-schema.service.js';
|
|
6
|
+
import { KnowledgeService } from './services/knowledge.service.js';
|
|
6
7
|
import { findProjectRoot } from './lib/find-project-root.js';
|
|
7
8
|
export const createSingletonServices = pikkuAddonServices(async (_config, { variables, metaService: existingMetaService, aiAgentRunner, schedulerService, agentRunService, workflowService, workflowRunService, aiStorage, aiRunState, deploymentService, credentialService, coverageService, scopeService, webhookService, auth, }) => {
|
|
8
9
|
if (!existingMetaService) {
|
|
@@ -17,10 +18,12 @@ export const createSingletonServices = pikkuAddonServices(async (_config, { vari
|
|
|
17
18
|
let codeEditService = null;
|
|
18
19
|
let stateDiffService = null;
|
|
19
20
|
let dbSchemaService = null;
|
|
21
|
+
let knowledgeService = null;
|
|
20
22
|
if (metaBasePath) {
|
|
21
23
|
const projectRoot = findProjectRoot(metaBasePath);
|
|
22
24
|
stateDiffService = new StateDiffService(projectRoot);
|
|
23
25
|
dbSchemaService = new DbSchemaService(metaService);
|
|
26
|
+
knowledgeService = new KnowledgeService(projectRoot, metaBasePath);
|
|
24
27
|
// code-edit.service pulls in the TypeScript compiler and is deliberately a
|
|
25
28
|
// lazy, separately-bundled module. Self-contained bundles (e.g. the sandbox
|
|
26
29
|
// orchestrator standalone artifact) don't ship it, so a failed import must
|
|
@@ -54,6 +57,7 @@ export const createSingletonServices = pikkuAddonServices(async (_config, { vari
|
|
|
54
57
|
codeEditService,
|
|
55
58
|
stateDiffService,
|
|
56
59
|
dbSchemaService,
|
|
60
|
+
knowledgeService,
|
|
57
61
|
auth,
|
|
58
62
|
};
|
|
59
63
|
});
|
package/dist/src/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CACvD,KAAK,EACH,OAAO,EACP,EACE,SAAS,EACT,WAAW,EAAE,mBAAmB,EAChC,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,IAAI,GACL,EACD,EAAE;IACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,oJAAoJ,CACrJ,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,mBAAmB,CAAA;IACvC,MAAM,YAAY,GAChB,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,6BAA6B,CAAA;IAE1E,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,MAAM,YAAY,GAAG,mBAAmB,EAAE,QAAQ,CAAA;IAClD,IAAI,eAAe,GAA2B,IAAI,CAAA;IAClD,IAAI,gBAAgB,GAA4B,IAAI,CAAA;IACpD,IAAI,eAAe,GAA2B,IAAI,CAAA;IAClD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QACjD,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACpD,eAAe,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;QAClD,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,iCAAiC,CAAA;YACtD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;YACtD,eAAe,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,aAAa;QACb,YAAY;QACZ,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,SAAS;QACT,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,YAAY;QACZ,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,IAAI;KACL,CAAA;AACH,CAAC,CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CACvD,KAAK,EACH,OAAO,EACP,EACE,SAAS,EACT,WAAW,EAAE,mBAAmB,EAChC,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,IAAI,GACL,EACD,EAAE;IACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,oJAAoJ,CACrJ,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,mBAAmB,CAAA;IACvC,MAAM,YAAY,GAChB,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,6BAA6B,CAAA;IAE1E,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,MAAM,YAAY,GAAG,mBAAmB,EAAE,QAAQ,CAAA;IAClD,IAAI,eAAe,GAA2B,IAAI,CAAA;IAClD,IAAI,gBAAgB,GAA4B,IAAI,CAAA;IACpD,IAAI,eAAe,GAA2B,IAAI,CAAA;IAClD,IAAI,gBAAgB,GAA4B,IAAI,CAAA;IACpD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QACjD,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACpD,eAAe,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;QAClD,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QAClE,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,iCAAiC,CAAA;YACtD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;YACtD,eAAe,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,aAAa;QACb,YAAY;QACZ,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,SAAS;QACT,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,YAAY;QACZ,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,IAAI;KACL,CAAA;AACH,CAAC,CACF,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pikku/addon-console",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.34",
|
|
4
4
|
"description": "Console addon for Pikku — functions powering the Pikku Console UI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"imports": {
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@pikku/better-auth": "^0.12.19",
|
|
43
|
-
"@pikku/core": "^0.12.
|
|
43
|
+
"@pikku/core": "^0.12.72"
|
|
44
44
|
},
|
|
45
45
|
"peerDependenciesMeta": {
|
|
46
46
|
"@pikku/better-auth": {
|
|
@@ -49,13 +49,15 @@
|
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@pikku/better-auth": "^0.12.19",
|
|
52
|
-
"@pikku/cli": "^0.12.
|
|
53
|
-
"@pikku/core": "^0.12.
|
|
52
|
+
"@pikku/cli": "^0.12.93",
|
|
53
|
+
"@pikku/core": "^0.12.72",
|
|
54
54
|
"oauth2-mock-server": "^7.1.1",
|
|
55
55
|
"typescript": "^6.0.3"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
+
"@pikku/knowledge": "^0.12.1",
|
|
58
59
|
"json-schema": "^0.4.0",
|
|
59
60
|
"open": "^10.0.0"
|
|
60
|
-
}
|
|
61
|
+
},
|
|
62
|
+
"license": "MIT"
|
|
61
63
|
}
|