@lssm/lib.metering 0.0.0-canary-20251207013726 → 0.0.0-canary-20251207043720
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/README.md +1 -0
- package/dist/contracts/index.js +1 -1
- package/dist/entities/index.js +1 -1
- package/dist/events.js +1 -1
- package/package.json +15 -7
- package/dist/aggregation/index.d.ts +0 -155
- package/dist/contracts/dist/capabilities/openbanking.js +0 -1
- package/dist/contracts/dist/client/index.js +0 -1
- package/dist/contracts/dist/client/react/feature-render.js +0 -1
- package/dist/contracts/dist/client/react/form-render.js +0 -1
- package/dist/contracts/dist/client/react/index.js +0 -1
- package/dist/contracts/dist/events.js +0 -1
- package/dist/contracts/dist/experiments/evaluator.js +0 -1
- package/dist/contracts/dist/graphql-federation/dist/index.js +0 -1
- package/dist/contracts/dist/index.js +0 -1
- package/dist/contracts/dist/install.js +0 -1
- package/dist/contracts/dist/integrations/contracts.js +0 -1
- package/dist/contracts/dist/integrations/index.js +0 -1
- package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -1
- package/dist/contracts/dist/integrations/openbanking/contracts/balances.js +0 -1
- package/dist/contracts/dist/integrations/openbanking/contracts/index.js +0 -1
- package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -1
- package/dist/contracts/dist/integrations/openbanking/models.js +0 -1
- package/dist/contracts/dist/integrations/openbanking/telemetry.js +0 -1
- package/dist/contracts/dist/integrations/providers/elevenlabs.js +0 -1
- package/dist/contracts/dist/integrations/providers/gcs-storage.js +0 -1
- package/dist/contracts/dist/integrations/providers/gmail.js +0 -1
- package/dist/contracts/dist/integrations/providers/google-calendar.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/elevenlabs-voice.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/gcs-storage.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/gmail-inbound.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/gmail-outbound.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/google-calendar.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/index.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/mistral-embedding.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/mistral-llm.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/postmark-email.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/powens-client.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/powens-openbanking.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/provider-factory.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/qdrant-vector.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/stripe-payments.js +0 -1
- package/dist/contracts/dist/integrations/providers/impls/twilio-sms.js +0 -1
- package/dist/contracts/dist/integrations/providers/index.js +0 -1
- package/dist/contracts/dist/integrations/providers/mistral.js +0 -1
- package/dist/contracts/dist/integrations/providers/postmark.js +0 -1
- package/dist/contracts/dist/integrations/providers/powens.js +0 -1
- package/dist/contracts/dist/integrations/providers/qdrant.js +0 -1
- package/dist/contracts/dist/integrations/providers/stripe.js +0 -1
- package/dist/contracts/dist/integrations/providers/twilio-sms.js +0 -1
- package/dist/contracts/dist/integrations/runtime.js +0 -1
- package/dist/contracts/dist/integrations/secrets/env-secret-provider.js +0 -1
- package/dist/contracts/dist/integrations/secrets/gcp-secret-manager.js +0 -1
- package/dist/contracts/dist/integrations/secrets/index.js +0 -1
- package/dist/contracts/dist/integrations/secrets/manager.js +0 -1
- package/dist/contracts/dist/integrations/secrets/provider.js +0 -1
- package/dist/contracts/dist/jsonschema.js +0 -1
- package/dist/contracts/dist/knowledge/contracts.js +0 -1
- package/dist/contracts/dist/knowledge/index.js +0 -1
- package/dist/contracts/dist/knowledge/spaces/email-threads.js +0 -1
- package/dist/contracts/dist/knowledge/spaces/financial-docs.js +0 -1
- package/dist/contracts/dist/knowledge/spaces/financial-overview.js +0 -1
- package/dist/contracts/dist/knowledge/spaces/index.js +0 -1
- package/dist/contracts/dist/knowledge/spaces/product-canon.js +0 -1
- package/dist/contracts/dist/knowledge/spaces/support-faq.js +0 -1
- package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -1
- package/dist/contracts/dist/onboarding-base.js +0 -1
- package/dist/contracts/dist/ownership.js +0 -1
- package/dist/contracts/dist/presentations.js +0 -1
- package/dist/contracts/dist/presentations.v2.js +0 -1
- package/dist/contracts/dist/prompt.js +0 -1
- package/dist/contracts/dist/promptRegistry.js +0 -1
- package/dist/contracts/dist/regenerator/index.js +0 -1
- package/dist/contracts/dist/regenerator/service.js +0 -1
- package/dist/contracts/dist/registry.js +0 -1
- package/dist/contracts/dist/resources.js +0 -1
- package/dist/contracts/dist/schema/dist/EnumType.js +0 -1
- package/dist/contracts/dist/schema/dist/FieldType.js +0 -1
- package/dist/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -1
- package/dist/contracts/dist/schema/dist/SchemaModel.js +0 -1
- package/dist/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/contracts/dist/schema/dist/entity/index.js +0 -1
- package/dist/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/contracts/dist/schema/dist/index.js +0 -1
- package/dist/contracts/dist/server/graphql-pothos.js +0 -1
- package/dist/contracts/dist/server/graphql-schema-export.js +0 -1
- package/dist/contracts/dist/server/index.js +0 -1
- package/dist/contracts/dist/server/provider-mcp.js +0 -1
- package/dist/contracts/dist/server/rest-elysia.js +0 -1
- package/dist/contracts/dist/server/rest-express.js +0 -1
- package/dist/contracts/dist/server/rest-generic.js +0 -1
- package/dist/contracts/dist/server/rest-next-app.js +0 -1
- package/dist/contracts/dist/server/rest-next-pages.js +0 -1
- package/dist/contracts/dist/spec.js +0 -1
- package/dist/contracts/dist/telemetry/index.js +0 -1
- package/dist/contracts/dist/telemetry/tracker.js +0 -1
- package/dist/contracts/dist/tests/index.js +0 -1
- package/dist/contracts/dist/tests/runner.js +0 -1
- package/dist/contracts/dist/workflow/index.js +0 -1
- package/dist/contracts/dist/workflow/runner.js +0 -1
- package/dist/contracts/index.d.ts +0 -1138
- package/dist/entities/index.d.ts +0 -230
- package/dist/events.d.ts +0 -539
- package/dist/index.d.ts +0 -5
- package/dist/schema/dist/EnumType.js +0 -1
- package/dist/schema/dist/FieldType.js +0 -1
- package/dist/schema/dist/ScalarTypeEnum.js +0 -1
- package/dist/schema/dist/SchemaModel.js +0 -1
- package/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/schema/dist/entity/index.js +0 -1
- package/dist/schema/dist/entity/types.js +0 -1
- package/dist/schema/dist/index.js +0 -1
package/README.md
CHANGED
package/dist/contracts/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{n as t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{n,t as r}from"./dist/spec.js";import"./dist/index.js";const i=[`platform.metering`],a=t({name:`MetricDefinition`,description:`Represents a metric definition`,fields:{id:{type:e.String_unsecure(),isOptional:!1},key:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},unit:{type:e.String_unsecure(),isOptional:!1},aggregationType:{type:e.String_unsecure(),isOptional:!1},resetPeriod:{type:e.String_unsecure(),isOptional:!1},category:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),o=t({name:`UsageRecord`,description:`Represents a usage record`,fields:{id:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},quantity:{type:e.Float_unsecure(),isOptional:!1},source:{type:e.String_unsecure(),isOptional:!0},resourceId:{type:e.String_unsecure(),isOptional:!0},resourceType:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`UsageSummary`,description:`Represents aggregated usage`,fields:{id:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},periodType:{type:e.String_unsecure(),isOptional:!1},periodStart:{type:e.DateTime(),isOptional:!1},periodEnd:{type:e.DateTime(),isOptional:!1},totalQuantity:{type:e.Float_unsecure(),isOptional:!1},recordCount:{type:e.Int_unsecure(),isOptional:!1},minQuantity:{type:e.Float_unsecure(),isOptional:!0},maxQuantity:{type:e.Float_unsecure(),isOptional:!0},avgQuantity:{type:e.Float_unsecure(),isOptional:!0}}}),c=t({name:`UsageThreshold`,description:`Represents a usage threshold`,fields:{id:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},name:{type:e.String_unsecure(),isOptional:!1},threshold:{type:e.Float_unsecure(),isOptional:!1},warnThreshold:{type:e.Float_unsecure(),isOptional:!0},periodType:{type:e.String_unsecure(),isOptional:!1},action:{type:e.String_unsecure(),isOptional:!1},currentValue:{type:e.Float_unsecure(),isOptional:!1},isActive:{type:e.Boolean(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),l=t({name:`DefineMetricInput`,description:`Input for defining a metric`,fields:{key:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},unit:{type:e.String_unsecure(),isOptional:!1},aggregationType:{type:e.String_unsecure(),isOptional:!0},resetPeriod:{type:e.String_unsecure(),isOptional:!0},category:{type:e.String_unsecure(),isOptional:!0},orgId:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0}}}),u=t({name:`UpdateMetricInput`,description:`Input for updating a metric`,fields:{metricId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},category:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0}}}),d=t({name:`DeleteMetricInput`,description:`Input for deleting a metric`,fields:{metricId:{type:e.String_unsecure(),isOptional:!1}}}),f=t({name:`GetMetricInput`,description:`Input for getting a metric`,fields:{key:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0}}}),p=t({name:`ListMetricsInput`,description:`Input for listing metrics`,fields:{orgId:{type:e.String_unsecure(),isOptional:!0},category:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),m=t({name:`ListMetricsOutput`,description:`Output for listing metrics`,fields:{metrics:{type:a,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),h=t({name:`RecordUsageInput`,description:`Input for recording usage`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},quantity:{type:e.Float_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!0},source:{type:e.String_unsecure(),isOptional:!0},resourceId:{type:e.String_unsecure(),isOptional:!0},resourceType:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},idempotencyKey:{type:e.String_unsecure(),isOptional:!0}}}),g=t({name:`RecordBatchUsageInput`,description:`Input for recording batch usage`,fields:{records:{type:h,isArray:!0,isOptional:!1}}}),_=t({name:`RecordBatchUsageOutput`,description:`Output for recording batch usage`,fields:{recordedCount:{type:e.Int_unsecure(),isOptional:!1},skippedCount:{type:e.Int_unsecure(),isOptional:!1},recordIds:{type:e.JSON(),isOptional:!1}}}),v=t({name:`GetUsageInput`,description:`Input for getting usage`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},startDate:{type:e.DateTime(),isOptional:!1},endDate:{type:e.DateTime(),isOptional:!1},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),y=t({name:`GetUsageOutput`,description:`Output for getting usage`,fields:{records:{type:o,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1},totalQuantity:{type:e.Float_unsecure(),isOptional:!1}}}),b=t({name:`GetUsageSummaryInput`,description:`Input for getting usage summary`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},periodType:{type:e.String_unsecure(),isOptional:!1},startDate:{type:e.DateTime(),isOptional:!1},endDate:{type:e.DateTime(),isOptional:!0}}}),x=t({name:`GetUsageSummaryOutput`,description:`Output for getting usage summary`,fields:{summaries:{type:s,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),S=t({name:`CreateThresholdInput`,description:`Input for creating a threshold`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},name:{type:e.String_unsecure(),isOptional:!1},threshold:{type:e.Float_unsecure(),isOptional:!1},warnThreshold:{type:e.Float_unsecure(),isOptional:!0},periodType:{type:e.String_unsecure(),isOptional:!0},action:{type:e.String_unsecure(),isOptional:!0},notifyEmails:{type:e.JSON(),isOptional:!0},notifyWebhook:{type:e.String_unsecure(),isOptional:!0}}}),C=t({name:`UpdateThresholdInput`,description:`Input for updating a threshold`,fields:{thresholdId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},threshold:{type:e.Float_unsecure(),isOptional:!0},warnThreshold:{type:e.Float_unsecure(),isOptional:!0},action:{type:e.String_unsecure(),isOptional:!0},notifyEmails:{type:e.JSON(),isOptional:!0},notifyWebhook:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!0}}}),w=t({name:`DeleteThresholdInput`,description:`Input for deleting a threshold`,fields:{thresholdId:{type:e.String_unsecure(),isOptional:!1}}}),T=t({name:`ListThresholdsInput`,description:`Input for listing thresholds`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!0},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!0}}}),E=t({name:`ListThresholdsOutput`,description:`Output for listing thresholds`,fields:{thresholds:{type:c,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),D=t({name:`SuccessOutput`,description:`Generic success output`,fields:{success:{type:e.Boolean(),isOptional:!1}}}),O=r({meta:{name:`metric.define`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`define`],description:`Define a new usage metric.`,goal:`Create a new metric for tracking usage.`,context:`Called when setting up metering.`},io:{input:l,output:a,errors:{METRIC_KEY_EXISTS:{description:`Metric key already exists`,http:409,gqlCode:`METRIC_KEY_EXISTS`,when:`A metric with this key already exists`}}},policy:{auth:`admin`}}),k=r({meta:{name:`metric.update`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`update`],description:`Update a metric definition.`,goal:`Modify metric configuration.`,context:`Called when updating metric settings.`},io:{input:u,output:a,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric ID is invalid`}}},policy:{auth:`admin`}}),A=r({meta:{name:`metric.delete`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`delete`],description:`Delete a metric definition.`,goal:`Remove a metric and its data.`,context:`Called when removing a metric.`},io:{input:d,output:D,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric ID is invalid`}}},policy:{auth:`admin`}}),j=n({meta:{name:`metric.get`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`get`],description:`Get a metric by key.`,goal:`Retrieve metric definition.`,context:`Called to inspect metric details.`},io:{input:f,output:a,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric key is invalid`}}},policy:{auth:`user`}}),M=n({meta:{name:`metric.list`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`list`],description:`List all metrics.`,goal:`View configured metrics.`,context:`Called to browse metrics.`},io:{input:p,output:m},policy:{auth:`user`}}),N=r({meta:{name:`usage.record`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`usage`,`record`],description:`Record a usage event.`,goal:`Track usage for billing and monitoring.`,context:`Called when usage occurs.`},io:{input:h,output:o,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric key is invalid`},DUPLICATE_RECORD:{description:`Record already exists`,http:409,gqlCode:`DUPLICATE_RECORD`,when:`Idempotency key already used`}}},policy:{auth:`admin`}}),P=r({meta:{name:`usage.recordBatch`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`usage`,`batch`],description:`Record multiple usage events.`,goal:`Efficiently track bulk usage.`,context:`Called for batch processing.`},io:{input:g,output:_},policy:{auth:`admin`}}),F=n({meta:{name:`usage.get`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`usage`,`get`],description:`Get usage records for a subject.`,goal:`View detailed usage history.`,context:`Called to analyze usage.`},io:{input:v,output:y},policy:{auth:`user`}}),I=n({meta:{name:`usage.getSummary`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`usage`,`summary`],description:`Get aggregated usage summary.`,goal:`View usage totals for billing.`,context:`Called for billing and reporting.`},io:{input:b,output:x},policy:{auth:`user`}}),L=r({meta:{name:`threshold.create`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`threshold`,`create`],description:`Create a usage threshold.`,goal:`Set up usage limits and alerts.`,context:`Called when configuring limits.`},io:{input:S,output:c,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric key is invalid`}}},policy:{auth:`admin`}}),R=r({meta:{name:`threshold.update`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`threshold`,`update`],description:`Update a threshold.`,goal:`Modify threshold configuration.`,context:`Called when adjusting limits.`},io:{input:C,output:c,errors:{THRESHOLD_NOT_FOUND:{description:`Threshold does not exist`,http:404,gqlCode:`THRESHOLD_NOT_FOUND`,when:`Threshold ID is invalid`}}},policy:{auth:`admin`}}),z=r({meta:{name:`threshold.delete`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`threshold`,`delete`],description:`Delete a threshold.`,goal:`Remove a usage threshold.`,context:`Called when removing limits.`},io:{input:w,output:D,errors:{THRESHOLD_NOT_FOUND:{description:`Threshold does not exist`,http:404,gqlCode:`THRESHOLD_NOT_FOUND`,when:`Threshold ID is invalid`}}},policy:{auth:`admin`}}),B=n({meta:{name:`threshold.list`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`threshold`,`list`],description:`List usage thresholds.`,goal:`View configured limits.`,context:`Called to browse thresholds.`},io:{input:T,output:E},policy:{auth:`user`}});export{L as CreateThresholdContract,O as DefineMetricContract,A as DeleteMetricContract,z as DeleteThresholdContract,j as GetMetricContract,F as GetUsageContract,I as GetUsageSummaryContract,M as ListMetricsContract,B as ListThresholdsContract,a as MetricDefinitionModel,P as RecordBatchUsageContract,N as RecordUsageContract,k as UpdateMetricContract,R as UpdateThresholdContract,o as UsageRecordModel,s as UsageSummaryModel,c as UsageThresholdModel};
|
|
1
|
+
import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineCommand as n,defineQuery as r}from"@lssm/lib.contracts";const i=[`platform.metering`],a=t({name:`MetricDefinition`,description:`Represents a metric definition`,fields:{id:{type:e.String_unsecure(),isOptional:!1},key:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},unit:{type:e.String_unsecure(),isOptional:!1},aggregationType:{type:e.String_unsecure(),isOptional:!1},resetPeriod:{type:e.String_unsecure(),isOptional:!1},category:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),o=t({name:`UsageRecord`,description:`Represents a usage record`,fields:{id:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},quantity:{type:e.Float_unsecure(),isOptional:!1},source:{type:e.String_unsecure(),isOptional:!0},resourceId:{type:e.String_unsecure(),isOptional:!0},resourceType:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`UsageSummary`,description:`Represents aggregated usage`,fields:{id:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},periodType:{type:e.String_unsecure(),isOptional:!1},periodStart:{type:e.DateTime(),isOptional:!1},periodEnd:{type:e.DateTime(),isOptional:!1},totalQuantity:{type:e.Float_unsecure(),isOptional:!1},recordCount:{type:e.Int_unsecure(),isOptional:!1},minQuantity:{type:e.Float_unsecure(),isOptional:!0},maxQuantity:{type:e.Float_unsecure(),isOptional:!0},avgQuantity:{type:e.Float_unsecure(),isOptional:!0}}}),c=t({name:`UsageThreshold`,description:`Represents a usage threshold`,fields:{id:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},name:{type:e.String_unsecure(),isOptional:!1},threshold:{type:e.Float_unsecure(),isOptional:!1},warnThreshold:{type:e.Float_unsecure(),isOptional:!0},periodType:{type:e.String_unsecure(),isOptional:!1},action:{type:e.String_unsecure(),isOptional:!1},currentValue:{type:e.Float_unsecure(),isOptional:!1},isActive:{type:e.Boolean(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),l=t({name:`DefineMetricInput`,description:`Input for defining a metric`,fields:{key:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},unit:{type:e.String_unsecure(),isOptional:!1},aggregationType:{type:e.String_unsecure(),isOptional:!0},resetPeriod:{type:e.String_unsecure(),isOptional:!0},category:{type:e.String_unsecure(),isOptional:!0},orgId:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0}}}),u=t({name:`UpdateMetricInput`,description:`Input for updating a metric`,fields:{metricId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},category:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0}}}),d=t({name:`DeleteMetricInput`,description:`Input for deleting a metric`,fields:{metricId:{type:e.String_unsecure(),isOptional:!1}}}),f=t({name:`GetMetricInput`,description:`Input for getting a metric`,fields:{key:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0}}}),p=t({name:`ListMetricsInput`,description:`Input for listing metrics`,fields:{orgId:{type:e.String_unsecure(),isOptional:!0},category:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),m=t({name:`ListMetricsOutput`,description:`Output for listing metrics`,fields:{metrics:{type:a,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),h=t({name:`RecordUsageInput`,description:`Input for recording usage`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},quantity:{type:e.Float_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!0},source:{type:e.String_unsecure(),isOptional:!0},resourceId:{type:e.String_unsecure(),isOptional:!0},resourceType:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},idempotencyKey:{type:e.String_unsecure(),isOptional:!0}}}),g=t({name:`RecordBatchUsageInput`,description:`Input for recording batch usage`,fields:{records:{type:h,isArray:!0,isOptional:!1}}}),_=t({name:`RecordBatchUsageOutput`,description:`Output for recording batch usage`,fields:{recordedCount:{type:e.Int_unsecure(),isOptional:!1},skippedCount:{type:e.Int_unsecure(),isOptional:!1},recordIds:{type:e.JSON(),isOptional:!1}}}),v=t({name:`GetUsageInput`,description:`Input for getting usage`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},startDate:{type:e.DateTime(),isOptional:!1},endDate:{type:e.DateTime(),isOptional:!1},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),y=t({name:`GetUsageOutput`,description:`Output for getting usage`,fields:{records:{type:o,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1},totalQuantity:{type:e.Float_unsecure(),isOptional:!1}}}),b=t({name:`GetUsageSummaryInput`,description:`Input for getting usage summary`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},periodType:{type:e.String_unsecure(),isOptional:!1},startDate:{type:e.DateTime(),isOptional:!1},endDate:{type:e.DateTime(),isOptional:!0}}}),x=t({name:`GetUsageSummaryOutput`,description:`Output for getting usage summary`,fields:{summaries:{type:s,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),S=t({name:`CreateThresholdInput`,description:`Input for creating a threshold`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},name:{type:e.String_unsecure(),isOptional:!1},threshold:{type:e.Float_unsecure(),isOptional:!1},warnThreshold:{type:e.Float_unsecure(),isOptional:!0},periodType:{type:e.String_unsecure(),isOptional:!0},action:{type:e.String_unsecure(),isOptional:!0},notifyEmails:{type:e.JSON(),isOptional:!0},notifyWebhook:{type:e.String_unsecure(),isOptional:!0}}}),C=t({name:`UpdateThresholdInput`,description:`Input for updating a threshold`,fields:{thresholdId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},threshold:{type:e.Float_unsecure(),isOptional:!0},warnThreshold:{type:e.Float_unsecure(),isOptional:!0},action:{type:e.String_unsecure(),isOptional:!0},notifyEmails:{type:e.JSON(),isOptional:!0},notifyWebhook:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!0}}}),w=t({name:`DeleteThresholdInput`,description:`Input for deleting a threshold`,fields:{thresholdId:{type:e.String_unsecure(),isOptional:!1}}}),T=t({name:`ListThresholdsInput`,description:`Input for listing thresholds`,fields:{metricKey:{type:e.String_unsecure(),isOptional:!0},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!0}}}),E=t({name:`ListThresholdsOutput`,description:`Output for listing thresholds`,fields:{thresholds:{type:c,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),D=t({name:`SuccessOutput`,description:`Generic success output`,fields:{success:{type:e.Boolean(),isOptional:!1}}}),O=n({meta:{name:`metric.define`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`define`],description:`Define a new usage metric.`,goal:`Create a new metric for tracking usage.`,context:`Called when setting up metering.`},io:{input:l,output:a,errors:{METRIC_KEY_EXISTS:{description:`Metric key already exists`,http:409,gqlCode:`METRIC_KEY_EXISTS`,when:`A metric with this key already exists`}}},policy:{auth:`admin`}}),k=n({meta:{name:`metric.update`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`update`],description:`Update a metric definition.`,goal:`Modify metric configuration.`,context:`Called when updating metric settings.`},io:{input:u,output:a,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric ID is invalid`}}},policy:{auth:`admin`}}),A=n({meta:{name:`metric.delete`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`delete`],description:`Delete a metric definition.`,goal:`Remove a metric and its data.`,context:`Called when removing a metric.`},io:{input:d,output:D,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric ID is invalid`}}},policy:{auth:`admin`}}),j=r({meta:{name:`metric.get`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`get`],description:`Get a metric by key.`,goal:`Retrieve metric definition.`,context:`Called to inspect metric details.`},io:{input:f,output:a,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric key is invalid`}}},policy:{auth:`user`}}),M=r({meta:{name:`metric.list`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`metric`,`list`],description:`List all metrics.`,goal:`View configured metrics.`,context:`Called to browse metrics.`},io:{input:p,output:m},policy:{auth:`user`}}),N=n({meta:{name:`usage.record`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`usage`,`record`],description:`Record a usage event.`,goal:`Track usage for billing and monitoring.`,context:`Called when usage occurs.`},io:{input:h,output:o,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric key is invalid`},DUPLICATE_RECORD:{description:`Record already exists`,http:409,gqlCode:`DUPLICATE_RECORD`,when:`Idempotency key already used`}}},policy:{auth:`admin`}}),P=n({meta:{name:`usage.recordBatch`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`usage`,`batch`],description:`Record multiple usage events.`,goal:`Efficiently track bulk usage.`,context:`Called for batch processing.`},io:{input:g,output:_},policy:{auth:`admin`}}),F=r({meta:{name:`usage.get`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`usage`,`get`],description:`Get usage records for a subject.`,goal:`View detailed usage history.`,context:`Called to analyze usage.`},io:{input:v,output:y},policy:{auth:`user`}}),I=r({meta:{name:`usage.getSummary`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`usage`,`summary`],description:`Get aggregated usage summary.`,goal:`View usage totals for billing.`,context:`Called for billing and reporting.`},io:{input:b,output:x},policy:{auth:`user`}}),L=n({meta:{name:`threshold.create`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`threshold`,`create`],description:`Create a usage threshold.`,goal:`Set up usage limits and alerts.`,context:`Called when configuring limits.`},io:{input:S,output:c,errors:{METRIC_NOT_FOUND:{description:`Metric does not exist`,http:404,gqlCode:`METRIC_NOT_FOUND`,when:`Metric key is invalid`}}},policy:{auth:`admin`}}),R=n({meta:{name:`threshold.update`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`threshold`,`update`],description:`Update a threshold.`,goal:`Modify threshold configuration.`,context:`Called when adjusting limits.`},io:{input:C,output:c,errors:{THRESHOLD_NOT_FOUND:{description:`Threshold does not exist`,http:404,gqlCode:`THRESHOLD_NOT_FOUND`,when:`Threshold ID is invalid`}}},policy:{auth:`admin`}}),z=n({meta:{name:`threshold.delete`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`threshold`,`delete`],description:`Delete a threshold.`,goal:`Remove a usage threshold.`,context:`Called when removing limits.`},io:{input:w,output:D,errors:{THRESHOLD_NOT_FOUND:{description:`Threshold does not exist`,http:404,gqlCode:`THRESHOLD_NOT_FOUND`,when:`Threshold ID is invalid`}}},policy:{auth:`admin`}}),B=r({meta:{name:`threshold.list`,version:1,stability:`stable`,owners:[...i],tags:[`metering`,`threshold`,`list`],description:`List usage thresholds.`,goal:`View configured limits.`,context:`Called to browse thresholds.`},io:{input:T,output:E},policy:{auth:`user`}});export{L as CreateThresholdContract,O as DefineMetricContract,A as DeleteMetricContract,z as DeleteThresholdContract,j as GetMetricContract,F as GetUsageContract,I as GetUsageSummaryContract,M as ListMetricsContract,B as ListThresholdsContract,a as MetricDefinitionModel,P as RecordBatchUsageContract,N as RecordUsageContract,k as UpdateMetricContract,R as UpdateThresholdContract,o as UsageRecordModel,s as UsageSummaryModel,c as UsageThresholdModel};
|
package/dist/entities/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{defineEntity as e,defineEntityEnum as t,field as n,index as r}from"@lssm/lib.schema";const i=t({name:`AggregationType`,values:[`COUNT`,`SUM`,`AVG`,`MAX`,`MIN`,`LAST`],schema:`lssm_metering`,description:`How to aggregate metric values.`}),a=t({name:`ResetPeriod`,values:[`NEVER`,`HOURLY`,`DAILY`,`WEEKLY`,`MONTHLY`,`YEARLY`],schema:`lssm_metering`,description:`When to reset metric counters.`}),o=t({name:`PeriodType`,values:[`HOURLY`,`DAILY`,`WEEKLY`,`MONTHLY`,`YEARLY`],schema:`lssm_metering`,description:`Time period for aggregation.`}),s=t({name:`ThresholdAction`,values:[`NONE`,`ALERT`,`WARN`,`BLOCK`,`DOWNGRADE`],schema:`lssm_metering`,description:`Action to take when threshold is exceeded.`}),c=e({name:`MetricDefinition`,description:`Definition of a usage metric.`,schema:`lssm_metering`,map:`metric_definition`,fields:{id:n.id({description:`Unique identifier`}),key:n.string({isUnique:!0,description:`Metric key (e.g., api_calls, storage_gb)`}),name:n.string({description:`Human-readable name`}),description:n.string({isOptional:!0,description:`Metric description`}),unit:n.string({description:`Unit of measurement (calls, bytes, etc.)`}),aggregationType:n.enum(`AggregationType`,{default:`SUM`,description:`How to aggregate values`}),resetPeriod:n.enum(`ResetPeriod`,{default:`MONTHLY`,description:`When to reset counters`}),precision:n.int({default:2,description:`Decimal precision`}),orgId:n.string({isOptional:!0,description:`Organization scope (null = global metric)`}),category:n.string({isOptional:!0,description:`Category for grouping`}),displayOrder:n.int({default:0,description:`Order for display`}),metadata:n.json({isOptional:!0,description:`Additional metadata`}),isActive:n.boolean({default:!0,description:`Whether metric is active`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),usageRecords:n.hasMany(`UsageRecord`),usageSummaries:n.hasMany(`UsageSummary`),thresholds:n.hasMany(`UsageThreshold`)},indexes:[r.on([`orgId`,`key`]),r.on([`category`]),r.on([`isActive`])],enums:[i,a]}),l=e({name:`UsageRecord`,description:`A single usage event.`,schema:`lssm_metering`,map:`usage_record`,fields:{id:n.id({description:`Unique identifier`}),metricKey:n.string({description:`Metric being recorded`}),metricId:n.string({isOptional:!0,description:`Metric ID (for FK)`}),subjectType:n.string({description:`Subject type (org, user, project)`}),subjectId:n.string({description:`Subject identifier`}),quantity:n.decimal({description:`Usage quantity`}),source:n.string({isOptional:!0,description:`Source of usage (endpoint, feature, etc.)`}),resourceId:n.string({isOptional:!0,description:`Related resource ID`}),resourceType:n.string({isOptional:!0,description:`Related resource type`}),metadata:n.json({isOptional:!0,description:`Additional context`}),idempotencyKey:n.string({isOptional:!0,description:`Idempotency key for deduplication`}),timestamp:n.dateTime({description:`When usage occurred`}),createdAt:n.createdAt(),aggregated:n.boolean({default:!1,description:`Whether included in summary`}),aggregatedAt:n.dateTime({isOptional:!0,description:`When aggregated`})},indexes:[r.on([`metricKey`,`subjectType`,`subjectId`,`timestamp`]),r.on([`subjectType`,`subjectId`,`timestamp`]),r.on([`timestamp`]),r.on([`aggregated`,`timestamp`]),r.unique([`idempotencyKey`],{name:`usage_record_idempotency`})]}),u=e({name:`UsageSummary`,description:`Pre-aggregated usage summary.`,schema:`lssm_metering`,map:`usage_summary`,fields:{id:n.id({description:`Unique identifier`}),metricKey:n.string({description:`Metric key`}),metricId:n.string({isOptional:!0,description:`Metric ID (for FK)`}),subjectType:n.string({description:`Subject type`}),subjectId:n.string({description:`Subject identifier`}),periodType:n.enum(`PeriodType`,{description:`Period type`}),periodStart:n.dateTime({description:`Period start time`}),periodEnd:n.dateTime({description:`Period end time`}),totalQuantity:n.decimal({description:`Total/aggregated quantity`}),recordCount:n.int({default:0,description:`Number of records aggregated`}),minQuantity:n.decimal({isOptional:!0,description:`Minimum value`}),maxQuantity:n.decimal({isOptional:!0,description:`Maximum value`}),avgQuantity:n.decimal({isOptional:!0,description:`Average value`}),metadata:n.json({isOptional:!0,description:`Additional metadata`}),createdAt:n.createdAt(),updatedAt:n.updatedAt()},indexes:[r.unique([`metricKey`,`subjectType`,`subjectId`,`periodType`,`periodStart`],{name:`usage_summary_unique`}),r.on([`subjectType`,`subjectId`,`periodType`,`periodStart`]),r.on([`metricKey`,`periodType`,`periodStart`])],enums:[o]}),d=e({name:`UsageThreshold`,description:`Usage threshold configuration.`,schema:`lssm_metering`,map:`usage_threshold`,fields:{id:n.id({description:`Unique identifier`}),metricKey:n.string({description:`Metric to monitor`}),metricId:n.string({isOptional:!0,description:`Metric ID (for FK)`}),subjectType:n.string({isOptional:!0,description:`Subject type`}),subjectId:n.string({isOptional:!0,description:`Subject identifier`}),name:n.string({description:`Threshold name`}),threshold:n.decimal({description:`Threshold value`}),warnThreshold:n.decimal({isOptional:!0,description:`Warning threshold (e.g., 80%)`}),periodType:n.enum(`PeriodType`,{default:`MONTHLY`,description:`Period to evaluate`}),action:n.enum(`ThresholdAction`,{default:`ALERT`,description:`Action when exceeded`}),notifyEmails:n.json({isOptional:!0,description:`Email addresses to notify`}),notifyWebhook:n.string({isOptional:!0,description:`Webhook URL to call`}),currentValue:n.decimal({default:0,description:`Current usage value`}),lastCheckedAt:n.dateTime({isOptional:!0,description:`Last threshold check`}),lastExceededAt:n.dateTime({isOptional:!0,description:`Last time threshold was exceeded`}),isActive:n.boolean({default:!0,description:`Whether threshold is active`}),metadata:n.json({isOptional:!0,description:`Additional metadata`}),createdAt:n.createdAt(),updatedAt:n.updatedAt()},indexes:[r.on([`metricKey`]),r.on([`subjectType`,`subjectId`]),r.on([`isActive`,`metricKey`])],enums:[s]}),f=e({name:`UsageAlert`,description:`Alert generated when threshold is exceeded.`,schema:`lssm_metering`,map:`usage_alert`,fields:{id:n.id({description:`Unique identifier`}),thresholdId:n.foreignKey({description:`Threshold that triggered alert`}),metricKey:n.string({description:`Metric key`}),subjectType:n.string({isOptional:!0,description:`Subject type`}),subjectId:n.string({isOptional:!0,description:`Subject identifier`}),alertType:n.string({description:`Alert type (warn, exceed, etc.)`}),threshold:n.decimal({description:`Threshold value`}),actualValue:n.decimal({description:`Actual usage value`}),percentageUsed:n.decimal({description:`Percentage of threshold used`}),status:n.string({default:`"pending"`,description:`Alert status (pending, acknowledged, resolved)`}),acknowledgedBy:n.string({isOptional:!0,description:`User who acknowledged`}),acknowledgedAt:n.dateTime({isOptional:!0,description:`When acknowledged`}),resolvedAt:n.dateTime({isOptional:!0,description:`When resolved`}),notificationsSent:n.json({isOptional:!0,description:`Notifications sent`}),triggeredAt:n.dateTime({description:`When alert was triggered`}),createdAt:n.createdAt(),thresholdRelation:n.belongsTo(`UsageThreshold`,[`thresholdId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`thresholdId`,`status`]),r.on([`metricKey`,`triggeredAt`]),r.on([`status`,`triggeredAt`])]}),p=[c,l,u,d,f],m={moduleId:`@lssm/lib.metering`,entities:p,enums:[i,a,o,s]};export{i as AggregationTypeEnum,c as MetricDefinitionEntity,o as PeriodTypeEnum,a as ResetPeriodEnum,s as ThresholdActionEnum,f as UsageAlertEntity,l as UsageRecordEntity,u as UsageSummaryEntity,d as UsageThresholdEntity,p as meteringEntities,m as meteringSchemaContribution};
|
package/dist/events.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineEvent as n}from"@lssm/lib.contracts";const r=t({name:`MetricDefinedEventPayload`,description:`Payload when a metric is defined`,fields:{metricId:{type:e.String_unsecure(),isOptional:!1},key:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},unit:{type:e.String_unsecure(),isOptional:!1},aggregationType:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),i=t({name:`MetricUpdatedEventPayload`,description:`Payload when a metric is updated`,fields:{metricId:{type:e.String_unsecure(),isOptional:!1},key:{type:e.String_unsecure(),isOptional:!1},changes:{type:e.JSON(),isOptional:!1},updatedBy:{type:e.String_unsecure(),isOptional:!0},updatedAt:{type:e.DateTime(),isOptional:!1}}}),a=t({name:`UsageRecordedEventPayload`,description:`Payload when usage is recorded`,fields:{recordId:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},quantity:{type:e.Float_unsecure(),isOptional:!1},source:{type:e.String_unsecure(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1}}}),o=t({name:`UsageBatchRecordedEventPayload`,description:`Payload when a batch of usage is recorded`,fields:{recordCount:{type:e.Int_unsecure(),isOptional:!1},metricKeys:{type:e.JSON(),isOptional:!1},totalQuantity:{type:e.Float_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`UsageAggregatedEventPayload`,description:`Payload when usage is aggregated`,fields:{summaryId:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},periodType:{type:e.String_unsecure(),isOptional:!1},periodStart:{type:e.DateTime(),isOptional:!1},periodEnd:{type:e.DateTime(),isOptional:!1},totalQuantity:{type:e.Float_unsecure(),isOptional:!1},recordCount:{type:e.Int_unsecure(),isOptional:!1},aggregatedAt:{type:e.DateTime(),isOptional:!1}}}),c=t({name:`ThresholdCreatedEventPayload`,description:`Payload when a threshold is created`,fields:{thresholdId:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},threshold:{type:e.Float_unsecure(),isOptional:!1},action:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),l=t({name:`ThresholdExceededEventPayload`,description:`Payload when a threshold is exceeded`,fields:{alertId:{type:e.String_unsecure(),isOptional:!1},thresholdId:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},threshold:{type:e.Float_unsecure(),isOptional:!1},actualValue:{type:e.Float_unsecure(),isOptional:!1},percentageUsed:{type:e.Float_unsecure(),isOptional:!1},action:{type:e.String_unsecure(),isOptional:!1},triggeredAt:{type:e.DateTime(),isOptional:!1}}}),u=t({name:`ThresholdApproachingEventPayload`,description:`Payload when usage is approaching a threshold`,fields:{thresholdId:{type:e.String_unsecure(),isOptional:!1},metricKey:{type:e.String_unsecure(),isOptional:!1},subjectType:{type:e.String_unsecure(),isOptional:!0},subjectId:{type:e.String_unsecure(),isOptional:!0},threshold:{type:e.Float_unsecure(),isOptional:!1},currentValue:{type:e.Float_unsecure(),isOptional:!1},percentageUsed:{type:e.Float_unsecure(),isOptional:!1},triggeredAt:{type:e.DateTime(),isOptional:!1}}}),d=n({name:`metric.defined`,version:1,description:`A metric has been defined.`,payload:r}),f=n({name:`metric.updated`,version:1,description:`A metric has been updated.`,payload:i}),p=n({name:`usage.recorded`,version:1,description:`Usage has been recorded.`,payload:a}),m=n({name:`usage.batch_recorded`,version:1,description:`A batch of usage has been recorded.`,payload:o}),h=n({name:`usage.aggregated`,version:1,description:`Usage has been aggregated into a summary.`,payload:s}),g=n({name:`threshold.created`,version:1,description:`A usage threshold has been created.`,payload:c}),_=n({name:`threshold.exceeded`,version:1,description:`Usage has exceeded a threshold.`,payload:l}),v=n({name:`threshold.approaching`,version:1,description:`Usage is approaching a threshold.`,payload:u}),y={MetricDefinedEvent:d,MetricUpdatedEvent:f,UsageRecordedEvent:p,UsageBatchRecordedEvent:m,UsageAggregatedEvent:h,ThresholdCreatedEvent:g,ThresholdExceededEvent:_,ThresholdApproachingEvent:v};export{y as MeteringEvents,d as MetricDefinedEvent,f as MetricUpdatedEvent,v as ThresholdApproachingEvent,g as ThresholdCreatedEvent,_ as ThresholdExceededEvent,h as UsageAggregatedEvent,m as UsageBatchRecordedEvent,p as UsageRecordedEvent};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/lib.metering",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20251207043720",
|
|
4
4
|
"description": "Usage metering and billing core module for ContractSpec applications",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"typescript": "^5.9.3"
|
|
28
28
|
},
|
|
29
29
|
"exports": {
|
|
30
|
-
".": "./
|
|
31
|
-
"./aggregation": "./
|
|
32
|
-
"./contracts": "./
|
|
33
|
-
"./entities": "./
|
|
34
|
-
"./events": "./
|
|
30
|
+
".": "./src/index.ts",
|
|
31
|
+
"./aggregation": "./src/aggregation/index.ts",
|
|
32
|
+
"./contracts": "./src/contracts/index.ts",
|
|
33
|
+
"./entities": "./src/entities/index.ts",
|
|
34
|
+
"./events": "./src/events.ts",
|
|
35
35
|
"./*": "./*"
|
|
36
36
|
},
|
|
37
37
|
"module": "./dist/index.js",
|
|
@@ -40,6 +40,14 @@
|
|
|
40
40
|
"README.md"
|
|
41
41
|
],
|
|
42
42
|
"publishConfig": {
|
|
43
|
-
"access": "public"
|
|
43
|
+
"access": "public",
|
|
44
|
+
"exports": {
|
|
45
|
+
".": "./dist/index.js",
|
|
46
|
+
"./aggregation": "./dist/aggregation/index.js",
|
|
47
|
+
"./contracts": "./dist/contracts/index.js",
|
|
48
|
+
"./entities": "./dist/entities/index.js",
|
|
49
|
+
"./events": "./dist/events.js",
|
|
50
|
+
"./*": "./*"
|
|
51
|
+
}
|
|
44
52
|
}
|
|
45
53
|
}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
//#region src/aggregation/index.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Usage aggregation engine.
|
|
4
|
-
*
|
|
5
|
-
* Provides periodic aggregation of usage records into summaries
|
|
6
|
-
* for efficient billing and reporting queries.
|
|
7
|
-
*/
|
|
8
|
-
type PeriodType = 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY';
|
|
9
|
-
type AggregationType = 'COUNT' | 'SUM' | 'AVG' | 'MAX' | 'MIN' | 'LAST';
|
|
10
|
-
interface UsageRecord {
|
|
11
|
-
id: string;
|
|
12
|
-
metricKey: string;
|
|
13
|
-
subjectType: string;
|
|
14
|
-
subjectId: string;
|
|
15
|
-
quantity: number;
|
|
16
|
-
timestamp: Date;
|
|
17
|
-
}
|
|
18
|
-
interface UsageSummary {
|
|
19
|
-
id: string;
|
|
20
|
-
metricKey: string;
|
|
21
|
-
subjectType: string;
|
|
22
|
-
subjectId: string;
|
|
23
|
-
periodType: PeriodType;
|
|
24
|
-
periodStart: Date;
|
|
25
|
-
periodEnd: Date;
|
|
26
|
-
totalQuantity: number;
|
|
27
|
-
recordCount: number;
|
|
28
|
-
minQuantity?: number;
|
|
29
|
-
maxQuantity?: number;
|
|
30
|
-
avgQuantity?: number;
|
|
31
|
-
}
|
|
32
|
-
interface MetricDefinition {
|
|
33
|
-
key: string;
|
|
34
|
-
aggregationType: AggregationType;
|
|
35
|
-
}
|
|
36
|
-
interface UsageStorage {
|
|
37
|
-
/**
|
|
38
|
-
* Get unaggregated records for a period.
|
|
39
|
-
*/
|
|
40
|
-
getUnaggregatedRecords(options: {
|
|
41
|
-
metricKey?: string;
|
|
42
|
-
periodStart: Date;
|
|
43
|
-
periodEnd: Date;
|
|
44
|
-
limit?: number;
|
|
45
|
-
}): Promise<UsageRecord[]>;
|
|
46
|
-
/**
|
|
47
|
-
* Mark records as aggregated.
|
|
48
|
-
*/
|
|
49
|
-
markRecordsAggregated(recordIds: string[], aggregatedAt: Date): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Get or create a summary record.
|
|
52
|
-
*/
|
|
53
|
-
upsertSummary(summary: Omit<UsageSummary, 'id'>): Promise<UsageSummary>;
|
|
54
|
-
/**
|
|
55
|
-
* Get metric definition.
|
|
56
|
-
*/
|
|
57
|
-
getMetric(key: string): Promise<MetricDefinition | null>;
|
|
58
|
-
/**
|
|
59
|
-
* List all active metrics.
|
|
60
|
-
*/
|
|
61
|
-
listMetrics(): Promise<MetricDefinition[]>;
|
|
62
|
-
}
|
|
63
|
-
interface AggregationOptions {
|
|
64
|
-
/** Storage implementation */
|
|
65
|
-
storage: UsageStorage;
|
|
66
|
-
/** Batch size for processing records */
|
|
67
|
-
batchSize?: number;
|
|
68
|
-
}
|
|
69
|
-
interface AggregateParams {
|
|
70
|
-
/** Period type to aggregate */
|
|
71
|
-
periodType: PeriodType;
|
|
72
|
-
/** Period start time */
|
|
73
|
-
periodStart: Date;
|
|
74
|
-
/** Period end time (optional, defaults to period boundary) */
|
|
75
|
-
periodEnd?: Date;
|
|
76
|
-
/** Specific metric to aggregate (optional, aggregates all if not specified) */
|
|
77
|
-
metricKey?: string;
|
|
78
|
-
}
|
|
79
|
-
interface AggregationResult {
|
|
80
|
-
periodType: PeriodType;
|
|
81
|
-
periodStart: Date;
|
|
82
|
-
periodEnd: Date;
|
|
83
|
-
recordsProcessed: number;
|
|
84
|
-
summariesCreated: number;
|
|
85
|
-
summariesUpdated: number;
|
|
86
|
-
errors: AggregationError[];
|
|
87
|
-
}
|
|
88
|
-
interface AggregationError {
|
|
89
|
-
metricKey: string;
|
|
90
|
-
subjectType: string;
|
|
91
|
-
subjectId: string;
|
|
92
|
-
error: string;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Get the start of a period for a given date.
|
|
96
|
-
*/
|
|
97
|
-
declare function getPeriodStart(date: Date, periodType: PeriodType): Date;
|
|
98
|
-
/**
|
|
99
|
-
* Get the end of a period for a given date.
|
|
100
|
-
*/
|
|
101
|
-
declare function getPeriodEnd(date: Date, periodType: PeriodType): Date;
|
|
102
|
-
/**
|
|
103
|
-
* Format a period key for grouping.
|
|
104
|
-
*/
|
|
105
|
-
declare function formatPeriodKey(date: Date, periodType: PeriodType): string;
|
|
106
|
-
/**
|
|
107
|
-
* Usage aggregator.
|
|
108
|
-
*
|
|
109
|
-
* Aggregates usage records into summaries based on period type.
|
|
110
|
-
*/
|
|
111
|
-
declare class UsageAggregator {
|
|
112
|
-
private storage;
|
|
113
|
-
private batchSize;
|
|
114
|
-
constructor(options: AggregationOptions);
|
|
115
|
-
/**
|
|
116
|
-
* Aggregate usage records for a period.
|
|
117
|
-
*/
|
|
118
|
-
aggregate(params: AggregateParams): Promise<AggregationResult>;
|
|
119
|
-
/**
|
|
120
|
-
* Group records by metric, subject, and period.
|
|
121
|
-
*/
|
|
122
|
-
private groupRecords;
|
|
123
|
-
/**
|
|
124
|
-
* Aggregate a group of records into a summary.
|
|
125
|
-
*/
|
|
126
|
-
private aggregateGroup;
|
|
127
|
-
/**
|
|
128
|
-
* Calculate aggregation values.
|
|
129
|
-
*/
|
|
130
|
-
private calculateAggregation;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* In-memory usage storage for testing.
|
|
134
|
-
*/
|
|
135
|
-
declare class InMemoryUsageStorage implements UsageStorage {
|
|
136
|
-
private records;
|
|
137
|
-
private summaries;
|
|
138
|
-
private metrics;
|
|
139
|
-
addRecord(record: UsageRecord): void;
|
|
140
|
-
addMetric(metric: MetricDefinition): void;
|
|
141
|
-
getUnaggregatedRecords(options: {
|
|
142
|
-
metricKey?: string;
|
|
143
|
-
periodStart: Date;
|
|
144
|
-
periodEnd: Date;
|
|
145
|
-
limit?: number;
|
|
146
|
-
}): Promise<UsageRecord[]>;
|
|
147
|
-
markRecordsAggregated(recordIds: string[]): Promise<void>;
|
|
148
|
-
upsertSummary(summary: Omit<UsageSummary, 'id'>): Promise<UsageSummary>;
|
|
149
|
-
getMetric(key: string): Promise<MetricDefinition | null>;
|
|
150
|
-
listMetrics(): Promise<MetricDefinition[]>;
|
|
151
|
-
getSummaries(): UsageSummary[];
|
|
152
|
-
clear(): void;
|
|
153
|
-
}
|
|
154
|
-
//#endregion
|
|
155
|
-
export { AggregateParams, AggregationError, AggregationOptions, AggregationResult, AggregationType, InMemoryUsageStorage, MetricDefinition, PeriodType, UsageAggregator, UsageRecord, UsageStorage, UsageSummary, formatPeriodKey, getPeriodEnd, getPeriodStart };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../ownership.js";const t=[`platform.finance`],n=[`open-banking`,`finance`];[...t],[...n],e.Experimental,[...t],[...n],e.Experimental,[...t],[...n],e.Experimental;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import"./react/feature-render.js";import"./react/form-render.js";import"./react/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../../presentations.v2.js";import"react";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"react";import"react-hook-form";import"@hookform/resolvers/zod";import"react/jsx-runtime";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import"./feature-render.js";import"./form-render.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./schema/dist/index.js";function e(e){return e}export{e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"node:crypto";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"@pothos/plugin-federation";import"@apollo/subgraph";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./schema/dist/SchemaModel.js";import"./schema/dist/index.js";import{e}from"./events.js";import"./presentations.v2.js";import"./client/react/feature-render.js";import"./client/react/form-render.js";import"./client/index.js";import"./jsonschema.js";import"./server/graphql-pothos.js";import"./server/graphql-schema-export.js";import"./presentations.js";import"./server/provider-mcp.js";import"./server/rest-generic.js";import"./server/rest-elysia.js";import"./server/rest-express.js";import"./server/rest-next-app.js";import"./server/rest-next-pages.js";import"./server/index.js";import{n as t,t as n}from"./spec.js";import"./registry.js";import"./install.js";import"./prompt.js";import"./promptRegistry.js";import"./resources.js";import{e as r,r as i,t as a}from"./ownership.js";import{d as o,l as s,m as c,o as l,p as u,s as d}from"./onboarding-base.js";import"./capabilities/openbanking.js";import"./telemetry/tracker.js";import"./telemetry/index.js";import"./tests/runner.js";import"./tests/index.js";import"./experiments/evaluator.js";import"./integrations/providers/stripe.js";import"./integrations/providers/postmark.js";import"./integrations/providers/qdrant.js";import"./integrations/providers/mistral.js";import"./integrations/providers/elevenlabs.js";import"./integrations/providers/gmail.js";import"./integrations/providers/google-calendar.js";import"./integrations/providers/twilio-sms.js";import"./integrations/providers/gcs-storage.js";import"./integrations/providers/powens.js";import"./integrations/providers/impls/mistral-llm.js";import"./integrations/providers/impls/mistral-embedding.js";import"./integrations/providers/impls/qdrant-vector.js";import"./integrations/providers/impls/gmail-inbound.js";import"./integrations/providers/impls/gmail-outbound.js";import"./integrations/providers/impls/google-calendar.js";import"./integrations/providers/impls/elevenlabs-voice.js";import"./integrations/providers/impls/gcs-storage.js";import"./integrations/providers/impls/stripe-payments.js";import"./integrations/providers/impls/postmark-email.js";import"./integrations/providers/impls/twilio-sms.js";import"./integrations/providers/impls/powens-client.js";import"./integrations/providers/impls/powens-openbanking.js";import"./integrations/providers/impls/provider-factory.js";import"./integrations/secrets/provider.js";import"./integrations/secrets/gcp-secret-manager.js";import"./integrations/secrets/env-secret-provider.js";import"./integrations/secrets/manager.js";import"./integrations/runtime.js";import{i as f,n as p,r as m}from"./integrations/openbanking/models.js";import{t as h}from"./integrations/openbanking/telemetry.js";import{d as g,f as _,p as v}from"./integrations/openbanking/contracts/accounts.js";import{d as y,u as b}from"./integrations/openbanking/contracts/transactions.js";import{d as x,u as S}from"./integrations/openbanking/contracts/balances.js";import"./integrations/openbanking/contracts/index.js";import"./integrations/index.js";import"./knowledge/spaces/product-canon.js";import"./knowledge/spaces/support-faq.js";import"./knowledge/spaces/email-threads.js";import"./knowledge/spaces/uploaded-docs.js";import"./knowledge/spaces/financial-docs.js";import"./knowledge/spaces/financial-overview.js";import"./knowledge/index.js";import{_ as C,g as w,h as T,m as E,p as D}from"./integrations/contracts.js";import{_ as O,g as k,h as A,m as j,v as M}from"./knowledge/contracts.js";import"./regenerator/service.js";import"./regenerator/index.js";import"./workflow/runner.js";import"./workflow/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./registry.js";import{z as e}from"zod";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../schema/dist/SchemaModel.js";import{l as t}from"../schema/dist/ScalarTypeEnum.js";import"../schema/dist/index.js";import{n,t as r}from"../spec.js";const i=new e({name:`IntegrationConnectionRecord`,fields:{id:{type:t.ID(),isOptional:!1},tenantId:{type:t.ID(),isOptional:!1},integrationKey:{type:t.NonEmptyString(),isOptional:!1},integrationVersion:{type:t.Int_unsecure(),isOptional:!1},label:{type:t.String_unsecure(),isOptional:!1},ownershipMode:{type:t.String_unsecure(),isOptional:!1},externalAccountId:{type:t.String_unsecure(),isOptional:!0},secretProvider:{type:t.String_unsecure(),isOptional:!1},secretRef:{type:t.String_unsecure(),isOptional:!1},status:{type:t.String_unsecure(),isOptional:!1},environment:{type:t.String_unsecure(),isOptional:!0},healthStatus:{type:t.String_unsecure(),isOptional:!0},healthCheckedAt:{type:t.DateTime(),isOptional:!0},healthLatencyMs:{type:t.Float_unsecure(),isOptional:!0},healthErrorCode:{type:t.String_unsecure(),isOptional:!0},healthErrorMessage:{type:t.String_unsecure(),isOptional:!0},usageRequestCount:{type:t.Int_unsecure(),isOptional:!0},usageSuccessCount:{type:t.Int_unsecure(),isOptional:!0},usageErrorCount:{type:t.Int_unsecure(),isOptional:!0},usageLastUsedAt:{type:t.DateTime(),isOptional:!0},usageLastErrorAt:{type:t.DateTime(),isOptional:!0},usageLastErrorCode:{type:t.String_unsecure(),isOptional:!0},createdAt:{type:t.DateTime(),isOptional:!0},updatedAt:{type:t.DateTime(),isOptional:!0}}}),a=new e({name:`CreateIntegrationConnectionInput`,fields:{tenantId:{type:t.ID(),isOptional:!1},integrationKey:{type:t.NonEmptyString(),isOptional:!1},integrationVersion:{type:t.Int_unsecure(),isOptional:!1},label:{type:t.String_unsecure(),isOptional:!1},ownershipMode:{type:t.String_unsecure(),isOptional:!1},externalAccountId:{type:t.String_unsecure(),isOptional:!0},secretProvider:{type:t.String_unsecure(),isOptional:!1},secretRef:{type:t.String_unsecure(),isOptional:!1},environment:{type:t.String_unsecure(),isOptional:!0},config:{type:t.JSONObject(),isOptional:!1}}}),o=new e({name:`UpdateIntegrationConnectionInput`,fields:{connectionId:{type:t.ID(),isOptional:!1},label:{type:t.String_unsecure(),isOptional:!0},status:{type:t.String_unsecure(),isOptional:!0},ownershipMode:{type:t.String_unsecure(),isOptional:!0},externalAccountId:{type:t.String_unsecure(),isOptional:!0},secretProvider:{type:t.String_unsecure(),isOptional:!0},secretRef:{type:t.String_unsecure(),isOptional:!0},config:{type:t.JSONObject(),isOptional:!0}}}),s=new e({name:`DeleteIntegrationConnectionInput`,fields:{connectionId:{type:t.ID(),isOptional:!1}}}),c=new e({name:`ListIntegrationConnectionsInput`,fields:{tenantId:{type:t.ID(),isOptional:!1},category:{type:t.String_unsecure(),isOptional:!0},status:{type:t.String_unsecure(),isOptional:!0}}}),l=new e({name:`ListIntegrationConnectionsOutput`,fields:{connections:{type:i,isOptional:!1,isArray:!0}}}),u=new e({name:`TestIntegrationConnectionInput`,fields:{connectionId:{type:t.ID(),isOptional:!1}}}),d=new e({name:`TestIntegrationConnectionOutput`,fields:{success:{type:t.Boolean(),isOptional:!1},status:{type:t.String_unsecure(),isOptional:!0},latencyMs:{type:t.Float_unsecure(),isOptional:!0},error:{type:t.String_unsecure(),isOptional:!0},errorCode:{type:t.String_unsecure(),isOptional:!0}}}),f=new e({name:`DeleteIntegrationConnectionOutput`,fields:{success:{type:t.Boolean(),isOptional:!1}}}),p=r({meta:{name:`integrations.connection.create`,version:1,description:`Create a new integration connection for a tenant.`,goal:`Provision a tenant-scoped connection to an external provider.`,context:`Used by Ops or the App Studio to configure external integrations such as Stripe or Qdrant.`,owners:[`platform.integrations`],tags:[`integration`,`connections`],stability:`experimental`},io:{input:a,output:i},policy:{auth:`admin`,policies:[{name:`platform.integration.manage`,version:1}]}}),m=r({meta:{name:`integrations.connection.update`,version:1,description:`Update metadata or credentials for an integration connection.`,goal:`Allow secure rotation of credentials and metadata adjustments.`,context:`Supports rotating API keys, toggling status, or updating labels for tenant integrations.`,owners:[`platform.integrations`],tags:[`integration`,`connections`],stability:`experimental`},io:{input:o,output:i},policy:{auth:`admin`,policies:[{name:`platform.integration.manage`,version:1}]}}),h=r({meta:{name:`integrations.connection.delete`,version:1,description:`Delete an integration connection for a tenant.`,goal:`Safely remove credentials and disable connector usage.`,context:`Ensures connections are de-provisioned when no longer needed or breached.`,owners:[`platform.integrations`],tags:[`integration`,`connections`],stability:`experimental`},io:{input:s,output:f},policy:{auth:`admin`,policies:[{name:`platform.integration.manage`,version:1}]}}),g=n({meta:{name:`integrations.connection.list`,version:1,description:`List integration connections for a tenant.`,goal:`Provide visibility into configured integrations and their status.`,context:`Used by the App Studio and Ops flows to show bindings and health.`,owners:[`platform.integrations`],tags:[`integration`,`connections`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`,policies:[{name:`platform.integration.read`,version:1}]}}),_=r({meta:{name:`integrations.connection.test`,version:1,description:`Run a health check against a configured integration connection.`,goal:`Validate credentials and connectivity for external providers.`,context:`Triggered manually or by background monitors to confirm provider availability.`,owners:[`platform.integrations`],tags:[`integration`,`connections`],stability:`experimental`},io:{input:u,output:d},policy:{auth:`admin`,policies:[{name:`platform.integration.manage`,version:1}]}});export{_,g,h,m,p};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./providers/stripe.js";import"./providers/postmark.js";import"./providers/qdrant.js";import"./providers/mistral.js";import"./providers/elevenlabs.js";import"./providers/gmail.js";import"./providers/google-calendar.js";import"./providers/twilio-sms.js";import"./providers/gcs-storage.js";import"./providers/powens.js";import"./providers/impls/mistral-llm.js";import"./providers/impls/mistral-embedding.js";import"./providers/impls/qdrant-vector.js";import"./providers/impls/gmail-inbound.js";import"./providers/impls/gmail-outbound.js";import"./providers/impls/google-calendar.js";import"./providers/impls/elevenlabs-voice.js";import"./providers/impls/gcs-storage.js";import"./providers/impls/stripe-payments.js";import"./providers/impls/postmark-email.js";import"./providers/impls/twilio-sms.js";import"./providers/impls/powens-client.js";import"./providers/impls/powens-openbanking.js";import"./providers/impls/provider-factory.js";import"./secrets/provider.js";import"./secrets/gcp-secret-manager.js";import"./secrets/env-secret-provider.js";import"./secrets/manager.js";import"./runtime.js";import{i as e,n as t,r as n}from"./openbanking/models.js";import{t as r}from"./openbanking/telemetry.js";import{d as i,f as a,p as o}from"./openbanking/contracts/accounts.js";import{d as s,u as c}from"./openbanking/contracts/transactions.js";import{d as l,u}from"./openbanking/contracts/balances.js";import"./openbanking/contracts/index.js";import"./providers/index.js";import"./secrets/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../../../schema/dist/SchemaModel.js";import{l as t}from"../../../schema/dist/ScalarTypeEnum.js";import"../../../schema/dist/index.js";import{n,t as r}from"../../../spec.js";import{n as i}from"../models.js";import{t as a}from"../telemetry.js";const o=new e({name:`OpenBankingListAccountsInput`,description:`Parameters for listing bank accounts through the open banking provider.`,fields:{tenantId:{type:t.ID(),isOptional:!1},userId:{type:t.ID(),isOptional:!1},connectionId:{type:t.ID(),isOptional:!0},includeBalances:{type:t.Boolean(),isOptional:!0},institutionId:{type:t.String_unsecure(),isOptional:!0},cursor:{type:t.String_unsecure(),isOptional:!0},pageSize:{type:t.Int_unsecure(),isOptional:!0}}}),s=new e({name:`OpenBankingListAccountsOutput`,description:`Paginated list of bank accounts available to the tenant and user.`,fields:{accounts:{type:i,isOptional:!1,isArray:!0},nextCursor:{type:t.String_unsecure(),isOptional:!0},hasMore:{type:t.Boolean(),isOptional:!0}}}),c=new e({name:`OpenBankingGetAccountInput`,description:`Parameters for retrieving a specific bank account.`,fields:{tenantId:{type:t.ID(),isOptional:!1},accountId:{type:t.ID(),isOptional:!1},includeBalances:{type:t.Boolean(),isOptional:!0},includeLatestTransactions:{type:t.Boolean(),isOptional:!0}}}),l=new e({name:`OpenBankingSyncAccountsInput`,description:`Command payload to trigger an account synchronisation against the open banking provider.`,fields:{tenantId:{type:t.ID(),isOptional:!1},userId:{type:t.ID(),isOptional:!0},connectionId:{type:t.ID(),isOptional:!1},accountIds:{type:t.ID(),isArray:!0,isOptional:!0},forceFullRefresh:{type:t.Boolean(),isOptional:!0},triggerWorkflows:{type:t.Boolean(),isOptional:!0}}}),u=new e({name:`OpenBankingSyncAccountsOutput`,description:`Result of a bank account synchronisation run.`,fields:{synced:{type:t.Int_unsecure(),isOptional:!1},failed:{type:t.Int_unsecure(),isOptional:!1},errors:{type:t.String_unsecure(),isArray:!0,isOptional:!0},nextSyncSuggestedAt:{type:t.DateTime(),isOptional:!0}}}),d=n({meta:{name:`openbanking.accounts.list`,version:1,description:`List bank accounts available to a tenant/user via Powens Open Banking.`,goal:`Provide downstream workflows with the set of accounts accessible via the configured open banking connection.`,context:`Used by Pocket Family Office dashboards and sync workflows to enumerate bank accounts prior to syncing balances or transactions.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),f=n({meta:{name:`openbanking.accounts.get`,version:1,description:`Retrieve the canonical bank account record for the given account identifier.`,goal:`Allow user-facing experiences and automations to display up-to-date account metadata.`,context:`Invoked by UI surfaces and workflow automation steps that require detailed metadata for a specific bank account.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:c,output:i},policy:{auth:`user`}}),p=r({meta:{name:`openbanking.accounts.sync`,version:1,description:`Initiate a synchronisation run to refresh bank account metadata from Powens.`,goal:`Keep canonical bank account records aligned with the external open banking provider.`,context:`Triggered by scheduled workflows or manual operator actions to reconcile account metadata prior to transaction/balance syncs.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:l,output:u},policy:{auth:`admin`},telemetry:{success:{event:{name:a.accountsSynced},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,connectionId:n?.connectionId,synced:r?.synced,failed:r?.failed}}},failure:{event:{name:a.accountsSyncFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,connectionId:n?.connectionId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}});export{d,f,p};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../../../schema/dist/SchemaModel.js";import{l as t}from"../../../schema/dist/ScalarTypeEnum.js";import"../../../schema/dist/index.js";import{n,t as r}from"../../../spec.js";import{i}from"../models.js";import{t as a}from"../telemetry.js";const o=new e({name:`OpenBankingGetBalancesInput`,description:`Parameters for retrieving bank account balances from the canonical ledger.`,fields:{tenantId:{type:t.ID(),isOptional:!1},accountId:{type:t.ID(),isOptional:!1},balanceTypes:{type:t.String_unsecure(),isArray:!0,isOptional:!0}}}),s=new e({name:`OpenBankingGetBalancesOutput`,description:`Canonical balances for a bank account.`,fields:{balances:{type:i,isOptional:!1,isArray:!0},asOf:{type:t.DateTime(),isOptional:!0}}}),c=new e({name:`OpenBankingRefreshBalancesInput`,description:`Command payload to refresh balances for a bank account via the open banking provider.`,fields:{tenantId:{type:t.ID(),isOptional:!1},accountId:{type:t.ID(),isOptional:!1},connectionId:{type:t.ID(),isOptional:!0},balanceTypes:{type:t.String_unsecure(),isArray:!0,isOptional:!0},forceRefresh:{type:t.Boolean(),isOptional:!0}}}),l=new e({name:`OpenBankingRefreshBalancesOutput`,description:`Result of a balance refresh against the open banking provider.`,fields:{balances:{type:i,isOptional:!1,isArray:!0},refreshedAt:{type:t.DateTime(),isOptional:!1},errors:{type:t.String_unsecure(),isArray:!0,isOptional:!0}}}),u=n({meta:{name:`openbanking.balances.get`,version:1,description:`Retrieve the latest cached balances for a bank account.`,goal:`Expose current and available balances required by dashboards and analytics.`,context:`Used by Pocket Family Office UI surfaces and automation steps that require balance totals prior to generating summaries.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`balances`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),d=r({meta:{name:`openbanking.balances.refresh`,version:1,description:`Refresh balances for a bank account via the configured open banking provider.`,goal:`Ensure canonical balance records reflect the latest values from Powens.`,context:`Triggered by scheduled workflows before generating summaries or forecasting cashflow.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`balances`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`},telemetry:{success:{event:{name:a.balancesRefreshed},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,accountId:n?.accountId,refreshedAt:r?.refreshedAt,balanceCount:Array.isArray(r?.balances)?r?.balances.length:void 0}}},failure:{event:{name:a.balancesRefreshFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,accountId:n?.accountId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}});export{d,u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as e,f as t,p as n}from"./accounts.js";import{d as r,u as i}from"./transactions.js";import{d as a,u as o}from"./balances.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../../../schema/dist/SchemaModel.js";import{l as t}from"../../../schema/dist/ScalarTypeEnum.js";import"../../../schema/dist/index.js";import{n,t as r}from"../../../spec.js";import{r as i}from"../models.js";import{t as a}from"../telemetry.js";const o=new e({name:`OpenBankingListTransactionsInput`,description:`Parameters for listing bank transactions from the canonical ledger.`,fields:{tenantId:{type:t.ID(),isOptional:!1},accountId:{type:t.ID(),isOptional:!1},from:{type:t.DateTime(),isOptional:!0},to:{type:t.DateTime(),isOptional:!0},cursor:{type:t.String_unsecure(),isOptional:!0},pageSize:{type:t.Int_unsecure(),isOptional:!0},direction:{type:t.String_unsecure(),isOptional:!0},minimumAmount:{type:t.Float_unsecure(),isOptional:!0},maximumAmount:{type:t.Float_unsecure(),isOptional:!0},category:{type:t.String_unsecure(),isOptional:!0}}}),s=new e({name:`OpenBankingListTransactionsOutput`,description:`Paginated list of transactions for a bank account.`,fields:{transactions:{type:i,isOptional:!1,isArray:!0},nextCursor:{type:t.String_unsecure(),isOptional:!0},hasMore:{type:t.Boolean(),isOptional:!0}}}),c=new e({name:`OpenBankingSyncTransactionsInput`,description:`Command payload to synchronise transactions from the open banking provider into the canonical ledger.`,fields:{tenantId:{type:t.ID(),isOptional:!1},accountId:{type:t.ID(),isOptional:!1},from:{type:t.DateTime(),isOptional:!0},to:{type:t.DateTime(),isOptional:!0},connectionId:{type:t.ID(),isOptional:!0},includePending:{type:t.Boolean(),isOptional:!0},backfillDays:{type:t.Int_unsecure(),isOptional:!0}}}),l=new e({name:`OpenBankingSyncTransactionsOutput`,description:`Result of a transaction synchronisation run.`,fields:{synced:{type:t.Int_unsecure(),isOptional:!1},failed:{type:t.Int_unsecure(),isOptional:!1},earliestSyncedAt:{type:t.DateTime(),isOptional:!0},latestSyncedAt:{type:t.DateTime(),isOptional:!0},nextSinceToken:{type:t.String_unsecure(),isOptional:!0},errors:{type:t.String_unsecure(),isArray:!0,isOptional:!0}}}),u=n({meta:{name:`openbanking.transactions.list`,version:1,description:`List bank transactions that have been normalised into the canonical ledger.`,goal:`Allow downstream analytics and UI surfaces to page through canonical bank transactions.`,context:`Used by Pocket Family Office dashboards, reconciliation workflows, and analytics data views.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`transactions`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),d=r({meta:{name:`openbanking.transactions.sync`,version:1,description:`Synchronise transactions for a bank account by calling the configured open banking provider.`,goal:`Ensure the canonical transaction ledger stays aligned with the external provider.`,context:`Triggered by scheduled workflows or on-demand actions when activity is expected on an account.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`transactions`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`},telemetry:{success:{event:{name:a.transactionsSynced},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,accountId:n?.accountId,synced:r?.synced,failed:r?.failed,earliestSyncedAt:r?.earliestSyncedAt,latestSyncedAt:r?.latestSyncedAt}}},failure:{event:{name:a.transactionsSyncFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,accountId:n?.accountId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}});export{d,u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../../schema/dist/SchemaModel.js";import{l as t}from"../../schema/dist/ScalarTypeEnum.js";import"../../schema/dist/index.js";const n=new e({name:`BankAccountRecord`,description:`Canonical representation of a bank account synced from an open banking provider.`,fields:{id:{type:t.ID(),isOptional:!1},tenantId:{type:t.ID(),isOptional:!1},userId:{type:t.ID(),isOptional:!1},connectionId:{type:t.ID(),isOptional:!1},externalId:{type:t.NonEmptyString(),isOptional:!1},institutionId:{type:t.NonEmptyString(),isOptional:!1},institutionName:{type:t.NonEmptyString(),isOptional:!1},institutionLogoUrl:{type:t.URL(),isOptional:!0},iban:{type:t.String_unsecure(),isOptional:!0},bic:{type:t.String_unsecure(),isOptional:!0},accountType:{type:t.NonEmptyString(),isOptional:!1},currency:{type:t.Currency(),isOptional:!1},displayName:{type:t.NonEmptyString(),isOptional:!1},accountNumberMasked:{type:t.String_unsecure(),isOptional:!0},productCode:{type:t.String_unsecure(),isOptional:!0},balance:{type:t.Float_unsecure(),isOptional:!0},availableBalance:{type:t.Float_unsecure(),isOptional:!0},lastSyncedAt:{type:t.DateTime(),isOptional:!1},createdAt:{type:t.DateTime(),isOptional:!1},updatedAt:{type:t.DateTime(),isOptional:!1},metadata:{type:t.JSONObject(),isOptional:!0}}}),r=new e({name:`BankTransactionRecord`,description:`Canonical transaction entry mapped from Powens into the open banking ledger.`,fields:{id:{type:t.ID(),isOptional:!1},accountId:{type:t.ID(),isOptional:!1},tenantId:{type:t.ID(),isOptional:!1},connectionId:{type:t.ID(),isOptional:!1},externalId:{type:t.NonEmptyString(),isOptional:!1},amount:{type:t.Float_unsecure(),isOptional:!1},currency:{type:t.Currency(),isOptional:!1},date:{type:t.DateTime(),isOptional:!1},bookingDate:{type:t.DateTime(),isOptional:!0},valueDate:{type:t.DateTime(),isOptional:!0},description:{type:t.String_unsecure(),isOptional:!0},counterpartyName:{type:t.String_unsecure(),isOptional:!0},counterpartyAccount:{type:t.String_unsecure(),isOptional:!0},merchantCategoryCode:{type:t.String_unsecure(),isOptional:!0},rawCategory:{type:t.String_unsecure(),isOptional:!0},standardizedCategory:{type:t.String_unsecure(),isOptional:!0},transactionType:{type:t.NonEmptyString(),isOptional:!1},status:{type:t.NonEmptyString(),isOptional:!1},runningBalance:{type:t.Float_unsecure(),isOptional:!0},metadata:{type:t.JSONObject(),isOptional:!0},createdAt:{type:t.DateTime(),isOptional:!1},updatedAt:{type:t.DateTime(),isOptional:!1}}}),i=new e({name:`AccountBalanceRecord`,description:`Canonical balance snapshot computed from Powens balance payloads.`,fields:{id:{type:t.ID(),isOptional:!1},accountId:{type:t.ID(),isOptional:!1},tenantId:{type:t.ID(),isOptional:!1},connectionId:{type:t.ID(),isOptional:!1},balanceType:{type:t.NonEmptyString(),isOptional:!1},currentBalance:{type:t.Float_unsecure(),isOptional:!1},availableBalance:{type:t.Float_unsecure(),isOptional:!0},currency:{type:t.Currency(),isOptional:!1},lastUpdatedAt:{type:t.DateTime(),isOptional:!1},createdAt:{type:t.DateTime(),isOptional:!1},metadata:{type:t.JSONObject(),isOptional:!0}}});export{i,n,r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={accountsSynced:`openbanking.accounts.synced`,accountsSyncFailed:`openbanking.accounts.sync_failed`,transactionsSynced:`openbanking.transactions.synced`,transactionsSyncFailed:`openbanking.transactions.sync_failed`,balancesRefreshed:`openbanking.balances.refreshed`,balancesRefreshFailed:`openbanking.balances.refresh_failed`,overviewGenerated:`openbanking.overview.generated`};export{e as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Beta;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Beta;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Beta;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Beta;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"@elevenlabs/elevenlabs-js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"@google-cloud/storage";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"googleapis";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"googleapis";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"googleapis";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./mistral-llm.js";import"./mistral-embedding.js";import"./qdrant-vector.js";import"./gmail-inbound.js";import"./gmail-outbound.js";import"./google-calendar.js";import"./elevenlabs-voice.js";import"./gcs-storage.js";import"./stripe-payments.js";import"./postmark-email.js";import"./twilio-sms.js";import"./powens-client.js";import"./powens-openbanking.js";import"./provider-factory.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"@mistralai/mistralai";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"@mistralai/mistralai";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"postmark";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"node:url";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./powens-client.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./mistral-llm.js";import"./mistral-embedding.js";import"./qdrant-vector.js";import"./elevenlabs-voice.js";import"./gcs-storage.js";import"./stripe-payments.js";import"./postmark-email.js";import"./twilio-sms.js";import"./powens-openbanking.js";import"node:buffer";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"@qdrant/js-client-rest";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"stripe";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"twilio";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./stripe.js";import"./postmark.js";import"./qdrant.js";import"./mistral.js";import"./elevenlabs.js";import"./gmail.js";import"./google-calendar.js";import"./twilio-sms.js";import"./gcs-storage.js";import"./powens.js";import"./impls/mistral-llm.js";import"./impls/mistral-embedding.js";import"./impls/qdrant-vector.js";import"./impls/gmail-inbound.js";import"./impls/gmail-outbound.js";import"./impls/google-calendar.js";import"./impls/elevenlabs-voice.js";import"./impls/gcs-storage.js";import"./impls/stripe-payments.js";import"./impls/postmark-email.js";import"./impls/twilio-sms.js";import"./impls/powens-client.js";import"./impls/powens-openbanking.js";import"./impls/provider-factory.js";import"./impls/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Experimental;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Stable;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Experimental;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Experimental;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Stable;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Stable;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"node:perf_hooks";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./provider.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./provider.js";import"@google-cloud/secret-manager";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./provider.js";import"./gcp-secret-manager.js";import"./env-secret-provider.js";import"./manager.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./provider.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"node:buffer";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"zod";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../schema/dist/SchemaModel.js";import{l as t}from"../schema/dist/ScalarTypeEnum.js";import"../schema/dist/index.js";import{n,t as r}from"../spec.js";const i=new e({name:`KnowledgeSyncSchedule`,fields:{enabled:{type:t.Boolean(),isOptional:!1},cron:{type:t.String_unsecure(),isOptional:!0},intervalMs:{type:t.Int_unsecure(),isOptional:!0}}}),a=new e({name:`KnowledgeSourceRecord`,fields:{id:{type:t.ID(),isOptional:!1},tenantId:{type:t.ID(),isOptional:!1},spaceKey:{type:t.NonEmptyString(),isOptional:!1},spaceVersion:{type:t.Int_unsecure(),isOptional:!1},label:{type:t.String_unsecure(),isOptional:!1},sourceType:{type:t.String_unsecure(),isOptional:!1},syncSchedule:{type:i,isOptional:!0},lastSyncStatus:{type:t.String_unsecure(),isOptional:!0},lastSyncAt:{type:t.DateTime(),isOptional:!0},itemsProcessed:{type:t.Int_unsecure(),isOptional:!0},createdAt:{type:t.DateTime(),isOptional:!0},updatedAt:{type:t.DateTime(),isOptional:!0}}}),o=new e({name:`CreateKnowledgeSourceInput`,fields:{tenantId:{type:t.ID(),isOptional:!1},spaceKey:{type:t.NonEmptyString(),isOptional:!1},spaceVersion:{type:t.Int_unsecure(),isOptional:!1},label:{type:t.String_unsecure(),isOptional:!1},sourceType:{type:t.NonEmptyString(),isOptional:!1},config:{type:t.JSONObject(),isOptional:!1},syncSchedule:{type:i,isOptional:!0}}}),s=new e({name:`UpdateKnowledgeSourceInput`,fields:{sourceId:{type:t.ID(),isOptional:!1},label:{type:t.String_unsecure(),isOptional:!0},config:{type:t.JSONObject(),isOptional:!0},syncSchedule:{type:i,isOptional:!0}}}),c=new e({name:`DeleteKnowledgeSourceInput`,fields:{sourceId:{type:t.ID(),isOptional:!1}}}),l=new e({name:`DeleteKnowledgeSourceOutput`,fields:{success:{type:t.Boolean(),isOptional:!1}}}),u=new e({name:`ListKnowledgeSourcesInput`,fields:{tenantId:{type:t.ID(),isOptional:!1},spaceKey:{type:t.NonEmptyString(),isOptional:!0}}}),d=new e({name:`ListKnowledgeSourcesOutput`,fields:{sources:{type:a,isOptional:!1,isArray:!0}}}),f=new e({name:`TriggerKnowledgeSyncInput`,fields:{sourceId:{type:t.ID(),isOptional:!1}}}),p=new e({name:`TriggerKnowledgeSyncOutput`,fields:{success:{type:t.Boolean(),isOptional:!1},itemsProcessed:{type:t.Int_unsecure(),isOptional:!0},error:{type:t.String_unsecure(),isOptional:!0}}}),m=r({meta:{name:`knowledge.source.create`,version:1,description:`Create a knowledge source binding for a tenant.`,goal:`Onboard a new knowledge ingestion source such as Notion or uploads.`,context:`Used by Ops and App Studio to configure knowledge ingestion per tenant and space.`,owners:[`platform.knowledge`],tags:[`knowledge`,`sources`],stability:`experimental`},io:{input:o,output:a},policy:{auth:`admin`,policies:[{name:`platform.knowledge.manage`,version:1}]}}),h=r({meta:{name:`knowledge.source.update`,version:1,description:`Update metadata or configuration for a knowledge source.`,goal:`Allow rotation of credentials, sync schedules, and labels.`,context:`Supports editing how a tenant ingests knowledge (e.g., toggling sync cadence).`,owners:[`platform.knowledge`],tags:[`knowledge`,`sources`],stability:`experimental`},io:{input:s,output:a},policy:{auth:`admin`,policies:[{name:`platform.knowledge.manage`,version:1}]}}),g=r({meta:{name:`knowledge.source.delete`,version:1,description:`Delete a knowledge source binding for a tenant.`,goal:`Remove obsolete or compromised knowledge ingestion paths.`,context:`Ensures ephemeral or external sources can be removed cleanly without leaving residual bindings.`,owners:[`platform.knowledge`],tags:[`knowledge`,`sources`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`,policies:[{name:`platform.knowledge.manage`,version:1}]}}),_=n({meta:{name:`knowledge.source.list`,version:1,description:`List knowledge sources configured for a tenant.`,goal:`Provide visibility into knowledge ingest configuration and schedules.`,context:`Used by App Studio and Ops flows to surface knowledge sources and their health.`,owners:[`platform.knowledge`],tags:[`knowledge`,`sources`],stability:`experimental`},io:{input:u,output:d},policy:{auth:`admin`,policies:[{name:`platform.knowledge.read`,version:1}]}}),v=r({meta:{name:`knowledge.source.triggerSync`,version:1,description:`Trigger an immediate sync for a knowledge source.`,goal:`Support manual or automated sync retries for knowledge ingestion.`,context:`Invoked by Ops tooling or monitors when knowledge content must be refreshed or reprocessed.`,owners:[`platform.knowledge`],tags:[`knowledge`,`sources`],stability:`experimental`},io:{input:f,output:p},policy:{auth:`admin`,policies:[{name:`platform.knowledge.manage`,version:1}]}});export{_,g,h,m,v};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./spaces/product-canon.js";import"./spaces/support-faq.js";import"./spaces/email-threads.js";import"./spaces/uploaded-docs.js";import"./spaces/financial-docs.js";import"./spaces/financial-overview.js";import"./spaces/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Beta;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Beta;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Experimental;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./product-canon.js";import"./support-faq.js";import"./email-threads.js";import"./uploaded-docs.js";import"./financial-docs.js";import"./financial-overview.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../../ownership.js";e.Stable;
|