@opencomputer/cli 0.5.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/project.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { access, cp, mkdir, readFile, readdir, rm, writeFile, } from "node:fs/promises";
3
3
  import { basename, dirname, relative, resolve } from "node:path";
4
+ import { Cron } from "croner";
4
5
  import ts from "typescript";
5
6
  const AGENT_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
6
7
  async function exists(path) {
@@ -260,7 +261,7 @@ export default function Agent() {
260
261
  deploy: "opencomputer deploy",
261
262
  },
262
263
  dependencies: {
263
- "@opencomputer/agent": "^0.4.0",
264
+ "@opencomputer/agent": "^0.5.0",
264
265
  ...(spa
265
266
  ? {
266
267
  "@opencomputer/react": "^0.1.0",
@@ -618,6 +619,372 @@ function literalStringValue(expression, label) {
618
619
  }
619
620
  return expression.text;
620
621
  }
622
+ function literalStringArray(expression, label) {
623
+ if (!expression || !ts.isArrayLiteralExpression(expression)) {
624
+ throw new Error(`${label} must be an array literal`);
625
+ }
626
+ return expression.elements.map((element) => literalStringValue(element, `${label} item`));
627
+ }
628
+ function staticPropertyName(name, label) {
629
+ if (ts.isIdentifier(name) || ts.isStringLiteralLike(name))
630
+ return name.text;
631
+ throw new Error(`${label} must use static property names`);
632
+ }
633
+ function defaultExportCall(source, path, helper) {
634
+ const file = ts.createSourceFile(path, source, ts.ScriptTarget.Latest, true);
635
+ const statement = file.statements.find((candidate) => ts.isExportAssignment(candidate) &&
636
+ ts.isCallExpression(candidate.expression) &&
637
+ ts.isIdentifier(candidate.expression.expression) &&
638
+ candidate.expression.expression.text === helper);
639
+ if (!statement || !ts.isCallExpression(statement.expression)) {
640
+ throw new Error(`${path} must default-export ${helper}()`);
641
+ }
642
+ return statement.expression;
643
+ }
644
+ function importedResourceId(source, path, localName, label) {
645
+ const file = ts.createSourceFile(path, source, ts.ScriptTarget.Latest, true);
646
+ const declaration = file.statements.find((statement) => ts.isImportDeclaration(statement) &&
647
+ statement.importClause?.name?.text === localName);
648
+ if (!declaration || !ts.isStringLiteralLike(declaration.moduleSpecifier)) {
649
+ throw new Error(`${path} must default-import the ${label} definition`);
650
+ }
651
+ const module = basename(declaration.moduleSpecifier.text).replace(/\.(?:js|ts)$/, "");
652
+ if (!AGENT_ID_PATTERN.test(module)) {
653
+ throw new Error(`${path} imports an invalid ${label} resource name`);
654
+ }
655
+ return module;
656
+ }
657
+ function channelDefinition(source, path) {
658
+ const call = defaultExportCall(source, path, "defineChannel");
659
+ const input = call.arguments[0];
660
+ if (!input || !ts.isObjectLiteralExpression(input)) {
661
+ throw new Error(`${path} defineChannel() requires an object literal`);
662
+ }
663
+ const id = literalStringValue(objectProperty(input, "id"), `${path} channel id`);
664
+ if (basename(path, ".ts") !== id || !AGENT_ID_PATTERN.test(id)) {
665
+ throw new Error(`${path} filename must match its valid channel id`);
666
+ }
667
+ const type = literalStringValue(objectProperty(input, "type"), `${path} channel type`);
668
+ if (type !== "slack")
669
+ throw new Error(`${path} supports only type "slack"`);
670
+ const scopesExpression = objectProperty(input, "scopes");
671
+ if (!scopesExpression || !ts.isObjectLiteralExpression(scopesExpression)) {
672
+ throw new Error(`${path} scopes must be an object literal`);
673
+ }
674
+ const scopes = [
675
+ ...new Set(literalStringArray(objectProperty(scopesExpression, "bot"), `${path} Slack bot scopes`)),
676
+ ].sort();
677
+ const events = [
678
+ ...new Set(objectProperty(input, "events")
679
+ ? literalStringArray(objectProperty(input, "events"), `${path} events`)
680
+ : []),
681
+ ].sort();
682
+ const allowedEvents = new Set(["app_mention", "message.im"]);
683
+ if (events.some((event) => !allowedEvents.has(event))) {
684
+ throw new Error(`${path} declares an unsupported Slack event`);
685
+ }
686
+ const requiredEventScopes = {
687
+ app_mention: "app_mentions:read",
688
+ "message.im": "im:history",
689
+ };
690
+ for (const event of events) {
691
+ const required = requiredEventScopes[event];
692
+ if (!scopes.includes(required)) {
693
+ throw new Error(`${path} event ${event} requires bot scope ${required}`);
694
+ }
695
+ }
696
+ const destinations = {};
697
+ const destinationsExpression = objectProperty(input, "destinations");
698
+ if (destinationsExpression) {
699
+ if (!ts.isObjectLiteralExpression(destinationsExpression)) {
700
+ throw new Error(`${path} destinations must be an object literal`);
701
+ }
702
+ for (const property of destinationsExpression.properties) {
703
+ if (!ts.isPropertyAssignment(property)) {
704
+ throw new Error(`${path} destinations cannot use spreads`);
705
+ }
706
+ const name = staticPropertyName(property.name, `${path} destination`);
707
+ if (!AGENT_ID_PATTERN.test(name)) {
708
+ throw new Error(`${path} has invalid destination ${name}`);
709
+ }
710
+ if (!ts.isObjectLiteralExpression(property.initializer)) {
711
+ throw new Error(`${path} destination ${name} must be an object literal`);
712
+ }
713
+ const destinationType = literalStringValue(objectProperty(property.initializer, "type"), `${path} destination ${name} type`);
714
+ const visibility = literalStringValue(objectProperty(property.initializer, "visibility"), `${path} destination ${name} visibility`);
715
+ if (destinationType !== "conversation" ||
716
+ (visibility !== "public" && visibility !== "private")) {
717
+ throw new Error(`${path} destination ${name} is unsupported`);
718
+ }
719
+ const required = visibility === "private" ? "groups:read" : "channels:read";
720
+ if (!scopes.includes(required) || !scopes.includes("chat:write")) {
721
+ throw new Error(`${path} destination ${name} requires ${required} and chat:write`);
722
+ }
723
+ destinations[name] = { type: "conversation", visibility };
724
+ }
725
+ }
726
+ const routingExpression = objectProperty(input, "routing");
727
+ if (routingExpression && !ts.isObjectLiteralExpression(routingExpression)) {
728
+ throw new Error(`${path} routing must be an object literal`);
729
+ }
730
+ if (routingExpression) {
731
+ const ambiguity = objectProperty(routingExpression, "whenAmbiguous");
732
+ if (ambiguity && literalStringValue(ambiguity, `${path} ambiguity policy`) !== "ask") {
733
+ throw new Error(`${path} supports only routing.whenAmbiguous = "ask"`);
734
+ }
735
+ }
736
+ const displayNameExpression = objectProperty(input, "displayName");
737
+ return {
738
+ id,
739
+ type: "slack",
740
+ ...(displayNameExpression
741
+ ? { displayName: literalStringValue(displayNameExpression, `${path} displayName`) }
742
+ : {}),
743
+ scopes: { bot: scopes },
744
+ events: events,
745
+ destinations,
746
+ routing: { whenAmbiguous: "ask" },
747
+ };
748
+ }
749
+ function channelRegistration(source, path, agentId, channels) {
750
+ const call = defaultExportCall(source, path, "registerChannel");
751
+ const channelExpression = call.arguments[0];
752
+ const input = call.arguments[1];
753
+ if (!channelExpression || !ts.isIdentifier(channelExpression)) {
754
+ throw new Error(`${path} must register an imported channel definition`);
755
+ }
756
+ if (!input || !ts.isObjectLiteralExpression(input)) {
757
+ throw new Error(`${path} registerChannel() requires an object literal`);
758
+ }
759
+ const channelId = importedResourceId(source, path, channelExpression.text, "channel");
760
+ const channel = channels.get(channelId);
761
+ if (!channel)
762
+ throw new Error(`${path} references unknown channel ${channelId}`);
763
+ const triggers = [
764
+ ...new Set(literalStringArray(objectProperty(input, "on"), `${path} triggers`)),
765
+ ].sort();
766
+ const triggerEvents = {
767
+ mention: "app_mention",
768
+ "direct-message": "message.im",
769
+ };
770
+ for (const trigger of triggers) {
771
+ const event = triggerEvents[trigger];
772
+ if (!event || !channel.events.includes(event)) {
773
+ throw new Error(`${path} trigger ${trigger} is not declared by ${channelId}`);
774
+ }
775
+ }
776
+ return {
777
+ agentId,
778
+ channelId,
779
+ triggers: triggers,
780
+ };
781
+ }
782
+ function outboxDefinition(source, path, channels) {
783
+ const call = defaultExportCall(source, path, "defineOutbox");
784
+ const input = call.arguments[0];
785
+ if (!input || !ts.isObjectLiteralExpression(input)) {
786
+ throw new Error(`${path} defineOutbox() requires an object literal`);
787
+ }
788
+ const id = literalStringValue(objectProperty(input, "id"), `${path} outbox id`);
789
+ if (basename(path, ".ts") !== id || !AGENT_ID_PATTERN.test(id)) {
790
+ throw new Error(`${path} filename must match its valid outbox id`);
791
+ }
792
+ const delivery = objectProperty(input, "delivery");
793
+ if (!delivery || !ts.isObjectLiteralExpression(delivery)) {
794
+ throw new Error(`${path} delivery must be an object literal`);
795
+ }
796
+ const channelExpression = objectProperty(delivery, "channel");
797
+ if (!channelExpression || !ts.isIdentifier(channelExpression)) {
798
+ throw new Error(`${path} delivery.channel must reference an imported channel`);
799
+ }
800
+ const channelId = importedResourceId(source, path, channelExpression.text, "channel");
801
+ const destination = literalStringValue(objectProperty(delivery, "destination"), `${path} destination`);
802
+ if (!channels.get(channelId)?.destinations[destination]) {
803
+ throw new Error(`${path} references unknown destination ${destination} on ${channelId}`);
804
+ }
805
+ return { id, channelId, destination };
806
+ }
807
+ function outboxRegistration(source, path, agentId, outboxes) {
808
+ const call = defaultExportCall(source, path, "registerOutbox");
809
+ const expression = call.arguments[0];
810
+ if (!expression || !ts.isIdentifier(expression)) {
811
+ throw new Error(`${path} must register an imported outbox definition`);
812
+ }
813
+ const outboxId = importedResourceId(source, path, expression.text, "outbox");
814
+ if (!outboxes.has(outboxId)) {
815
+ throw new Error(`${path} references unknown outbox ${outboxId}`);
816
+ }
817
+ return { agentId, outboxId };
818
+ }
819
+ function staticJsonValue(expression, label) {
820
+ if (ts.isStringLiteralLike(expression))
821
+ return expression.text;
822
+ if (ts.isNumericLiteral(expression))
823
+ return Number(expression.text);
824
+ if (ts.isPrefixUnaryExpression(expression) &&
825
+ expression.operator === ts.SyntaxKind.MinusToken &&
826
+ ts.isNumericLiteral(expression.operand)) {
827
+ return -Number(expression.operand.text);
828
+ }
829
+ if (expression.kind === ts.SyntaxKind.TrueKeyword)
830
+ return true;
831
+ if (expression.kind === ts.SyntaxKind.FalseKeyword)
832
+ return false;
833
+ if (expression.kind === ts.SyntaxKind.NullKeyword)
834
+ return null;
835
+ if (ts.isArrayLiteralExpression(expression)) {
836
+ return expression.elements.map((element) => {
837
+ if (ts.isSpreadElement(element)) {
838
+ throw new Error(`${label} cannot use spreads`);
839
+ }
840
+ return staticJsonValue(element, label);
841
+ });
842
+ }
843
+ if (ts.isObjectLiteralExpression(expression)) {
844
+ const value = {};
845
+ for (const property of expression.properties) {
846
+ if (!ts.isPropertyAssignment(property)) {
847
+ throw new Error(`${label} cannot use methods or spreads`);
848
+ }
849
+ value[staticPropertyName(property.name, label)] = staticJsonValue(property.initializer, label);
850
+ }
851
+ return value;
852
+ }
853
+ throw new Error(`${label} must be a static JSON value`);
854
+ }
855
+ function scheduleDefinition(source, path, agentId) {
856
+ const call = defaultExportCall(source, path, "defineSchedule");
857
+ const input = call.arguments[0];
858
+ if (!input || !ts.isObjectLiteralExpression(input)) {
859
+ throw new Error(`${path} defineSchedule() requires an object literal`);
860
+ }
861
+ const id = literalStringValue(objectProperty(input, "id"), `${path} schedule id`);
862
+ if (basename(path, ".ts") !== id || !AGENT_ID_PATTERN.test(id)) {
863
+ throw new Error(`${path} filename must match its valid schedule id`);
864
+ }
865
+ const cron = literalStringValue(objectProperty(input, "cron"), `${path} cron`)
866
+ .trim()
867
+ .replace(/\s+/g, " ");
868
+ if (cron.split(" ").length !== 5) {
869
+ throw new Error(`${path} cron must contain exactly five fields`);
870
+ }
871
+ const timezoneExpression = objectProperty(input, "timezone");
872
+ const timezone = timezoneExpression
873
+ ? literalStringValue(timezoneExpression, `${path} timezone`)
874
+ : "UTC";
875
+ try {
876
+ new Intl.DateTimeFormat("en-US", { timeZone: timezone }).format();
877
+ }
878
+ catch {
879
+ throw new Error(`${path} timezone must be a valid IANA timezone`);
880
+ }
881
+ try {
882
+ new Cron(cron, { timezone, paused: true });
883
+ }
884
+ catch {
885
+ throw new Error(`${path} cron is invalid`);
886
+ }
887
+ const enabledExpression = objectProperty(input, "enabled");
888
+ const enabled = [
889
+ ...new Set(enabledExpression
890
+ ? literalStringArray(enabledExpression, `${path} enabled environments`)
891
+ : ["production"]),
892
+ ].sort();
893
+ if (!enabled.length ||
894
+ enabled.some((environment) => environment !== "development" && environment !== "production")) {
895
+ throw new Error(`${path} enabled environments are invalid`);
896
+ }
897
+ const overlapExpression = objectProperty(input, "overlap");
898
+ const overlap = overlapExpression
899
+ ? literalStringValue(overlapExpression, `${path} overlap`)
900
+ : "skip";
901
+ if (overlap !== "skip" && overlap !== "allow") {
902
+ throw new Error(`${path} overlap must be "skip" or "allow"`);
903
+ }
904
+ const dispatchExpression = objectProperty(input, "dispatch");
905
+ if (!dispatchExpression || !ts.isObjectLiteralExpression(dispatchExpression)) {
906
+ throw new Error(`${path} dispatch must be an object literal`);
907
+ }
908
+ const textExpression = objectProperty(dispatchExpression, "text");
909
+ const text = textExpression
910
+ ? literalStringValue(textExpression, `${path} dispatch text`).trim()
911
+ : undefined;
912
+ const payloadExpression = objectProperty(dispatchExpression, "payload");
913
+ const payload = payloadExpression
914
+ ? staticJsonValue(payloadExpression, `${path} dispatch payload`)
915
+ : undefined;
916
+ if (!text && payload === undefined) {
917
+ throw new Error(`${path} dispatch requires text or payload`);
918
+ }
919
+ if (payload !== undefined && JSON.stringify(payload).length > 32 * 1024) {
920
+ throw new Error(`${path} dispatch payload cannot exceed 32 KiB`);
921
+ }
922
+ return {
923
+ id,
924
+ agentId,
925
+ cron,
926
+ timezone,
927
+ enabled: enabled,
928
+ overlap,
929
+ dispatch: {
930
+ ...(text ? { text } : {}),
931
+ ...(payload === undefined ? {} : { payload }),
932
+ },
933
+ };
934
+ }
935
+ async function typescriptFiles(directory) {
936
+ if (!(await exists(directory)))
937
+ return [];
938
+ return (await readdir(directory, { withFileTypes: true }))
939
+ .filter((entry) => entry.isFile() && entry.name.endsWith(".ts"))
940
+ .map((entry) => resolve(directory, entry.name))
941
+ .sort();
942
+ }
943
+ export async function readProjectResources(projectRoot) {
944
+ const opencomputer = resolve(projectRoot, "opencomputer");
945
+ const channelDefinitions = await Promise.all((await typescriptFiles(resolve(opencomputer, "channels"))).map(async (path) => channelDefinition(await readFile(path, "utf8"), path)));
946
+ const channels = new Map(channelDefinitions.map((channel) => [channel.id, channel]));
947
+ if (channels.size !== channelDefinitions.length) {
948
+ throw new Error("Project channel IDs must be unique");
949
+ }
950
+ const outboxDefinitions = await Promise.all((await typescriptFiles(resolve(opencomputer, "outboxes"))).map(async (path) => outboxDefinition(await readFile(path, "utf8"), path, channels)));
951
+ const outboxes = new Map(outboxDefinitions.map((outbox) => [outbox.id, outbox]));
952
+ if (outboxes.size !== outboxDefinitions.length) {
953
+ throw new Error("Project outbox IDs must be unique");
954
+ }
955
+ const agents = await readProjectAgents(projectRoot);
956
+ const channelRegistrations = [];
957
+ const outboxRegistrations = [];
958
+ const schedules = [];
959
+ for (const agent of agents) {
960
+ for (const path of await typescriptFiles(resolve(agent.root, "channels"))) {
961
+ channelRegistrations.push(channelRegistration(await readFile(path, "utf8"), path, agent.localId, channels));
962
+ }
963
+ for (const path of await typescriptFiles(resolve(agent.root, "outboxes"))) {
964
+ outboxRegistrations.push(outboxRegistration(await readFile(path, "utf8"), path, agent.localId, outboxes));
965
+ }
966
+ for (const path of await typescriptFiles(resolve(agent.root, "schedules"))) {
967
+ schedules.push(scheduleDefinition(await readFile(path, "utf8"), path, agent.localId));
968
+ }
969
+ }
970
+ const scheduleKeys = schedules.map(({ agentId, id }) => `${agentId}:${id}`);
971
+ if (new Set(scheduleKeys).size !== scheduleKeys.length) {
972
+ throw new Error("Agent schedule IDs must be unique within each agent");
973
+ }
974
+ const manifest = {
975
+ version: 1,
976
+ channels: channelDefinitions.sort((left, right) => left.id.localeCompare(right.id)),
977
+ channelRegistrations: channelRegistrations.sort((left, right) => `${left.channelId}:${left.agentId}`.localeCompare(`${right.channelId}:${right.agentId}`)),
978
+ outboxes: outboxDefinitions.sort((left, right) => left.id.localeCompare(right.id)),
979
+ outboxRegistrations: outboxRegistrations.sort((left, right) => `${left.outboxId}:${left.agentId}`.localeCompare(`${right.outboxId}:${right.agentId}`)),
980
+ schedules: schedules.sort((left, right) => `${left.agentId}:${left.id}`.localeCompare(`${right.agentId}:${right.id}`)),
981
+ };
982
+ const serialized = JSON.stringify(manifest);
983
+ return {
984
+ manifest,
985
+ digest: createHash("sha256").update(serialized).digest("hex"),
986
+ };
987
+ }
621
988
  function secretNameFromExpression(expression) {
622
989
  if (!ts.isCallExpression(expression) ||
623
990
  !ts.isIdentifier(expression.expression) ||
@@ -850,6 +1217,23 @@ export const defineTool = (input) => {
850
1217
  if (input.output && typeof input.output !== "object") throw new Error("defineTool output must be a JSON Schema object");
851
1218
  return Object.freeze({ kind: "tool", version: 1, ...input, id: toolId, name: toolId });
852
1219
  };
1220
+ export const publishOutbox = async (outbox, input) => {
1221
+ const outboxId = id(typeof outbox === "string" ? outbox : outbox.id, "publishOutbox");
1222
+ const type = String(input.type).trim();
1223
+ if (!/^[a-z0-9]+(?:[a-z0-9.-]*[a-z0-9])?$/.test(type)) throw new Error("Outbox event types must use lowercase dot notation");
1224
+ const idempotencyKey = String(input.idempotencyKey).trim();
1225
+ if (!idempotencyKey || idempotencyKey.length > 256) throw new Error("Outbox idempotency keys must contain 1 to 256 characters");
1226
+ const base = globalThis.process?.env?.OPENCOMPUTER_OUTBOX_URL;
1227
+ const token = globalThis.process?.env?.OPENCOMPUTER_OUTBOX_TOKEN;
1228
+ if (!base || !token) throw new Error("OpenComputer outbox delivery is unavailable");
1229
+ const response = await fetch(base.replace(/\\\/$/, "") + "/" + encodeURIComponent(outboxId) + "/items", {
1230
+ method: "POST",
1231
+ headers: { authorization: "Bearer " + token, "content-type": "application/json" },
1232
+ body: JSON.stringify({ type, content: input.content, idempotencyKey }),
1233
+ });
1234
+ if (!response.ok) throw new Error("Outbox publish failed with status " + response.status);
1235
+ return await response.json();
1236
+ };
853
1237
  export const useInput = () => hooks().useInput();
854
1238
  export const useCurrentInput = useInput;
855
1239
  export const useModel = (model) => hooks().useModel(model);
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}